Skip to content

Latest commit

 

History

History
121 lines (85 loc) · 4.06 KB

File metadata and controls

121 lines (85 loc) · 4.06 KB

Analog

The open source calendar that changes everything

Getting Started

To get Analog up and running on your local machine, follow these steps:

Prerequisites

Ensure you have the following installed:

Setup

  1. Clone the repository:

    git clone https://github.com/analogdotnow/analog.git
    cd analog
  2. Install dependencies:

    bun install
  3. Configure environment variables: Copy the example environment file:

    cp .env.example .env

    Then, open the newly created .env file. You will find default values for DATABASE_URL and BETTER_AUTH_URL. You need to set the following:

    • BETTER_AUTH_SECRET: Generate a secure secret by running openssl rand -hex 32 in your terminal.

  4. Set up Google OAuth:

  1. Set up Microsoft OAuth (optional):
  • MICROSOFT_CLIENT_ID and MICROSOFT_CLIENT_SECRET:
    1. Go to the Microsoft Azure Portal, then navigate to Microsoft Entra ID → App registrations.
    2. Register a new application and set the redirect URI (http://localhost:3000/api/auth/callback/microsoft).
    3. Copy the Application (client) ID and create a new client secret under Certificates & secrets.
    4. Go to API permissions, click + Add a permission, choose Microsoft Graph → Delegated permissions, and add:
      • Calendars.Read, Calendars.ReadWrite, User.Read, offline_access
  1. Set up Google Places API:

Database Setup

Analog uses PostgreSQL with Drizzle ORM. You can run the database using Docker:

  1. Start the PostgreSQL database container:

    bun run docker:up

    This command uses docker-compose.yml to spin up a PostgreSQL container.

  2. Initialize the database: Once the database container is running and healthy, initialize the database:

    bun run db:push

Running the Application

After setting up the environment and database, you can start the development server:

bun run dev

The application should now be accessible in your browser at http://localhost:3000.

Tech Stack

  • Web: Next.js, TypeScript, Tailwind v4, Bun, tRPC, TanStack Query, shadcn/ui
  • Database: Drizzle with PostgreSQL
  • Authentication: Better Auth for Google OAuth

Roadmap

WIP.

Contributing

Please see CONTRIBUTING.md for details on how to contribute to this project.