The open source calendar that changes everything
To get Analog up and running on your local machine, follow these steps:
Ensure you have the following installed:
- Bun: A fast JavaScript runtime, package manager, bundler, and test runner.
- Docker Desktop: For running the PostgreSQL database.
-
Clone the repository:
git clone https://github.com/jeanmeijer/analog.git cd analog
-
Install dependencies:
bun install
-
Configure environment variables: Copy the example environment file:
cp .env.example .env
Then, open the newly created
.env
file. You will find default values forDATABASE_URL
andBETTER_AUTH_URL
. You need to set the following:BETTER_AUTH_SECRET
: Generate a secure secret by runningopenssl rand -hex 32
in your terminal.GOOGLE_CLIENT_ID
andGOOGLE_CLIENT_SECRET
:- Create a Google project in the Google Cloud Console.
- Follow step 1 in the Better Auth documentation to set up Google OAuth credentials.
- Enable the Google Calendar API by visiting Google Cloud Console APIs and enabling it for your project.
Analog uses PostgreSQL with Drizzle ORM. You can run the database using Docker:
-
Start the PostgreSQL database container:
bun run docker:up
This command uses
docker-compose.yml
to spin up a PostgreSQL container. -
Run database migrations: Once the database container is running and healthy, apply the migrations:
bun run db:migrate
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, typically at http://localhost:3000
.
- Web: Next.js, TypeScript, Tailwind v4, Bun, tRPC, TanStack Query, shadcn/ui
- Database: Drizzle with PostgreSQL
- Authentication: Better Auth for Google OAuth
WIP.
WIP.
Please see CONTRIBUTING.md for details on how to contribute to this project.