Getting Started
Run Project Syrup locally in under five minutes.
Prerequisites
You only need two things installed on your machine:
- Docker — docs.docker.com/get-docker
- Docker Compose (included with Docker Desktop, or install the
docker-compose-pluginseparately on Linux)
You do not need Go, Node.js, or PostgreSQL installed locally.
Local Development
-
Clone the repository
git clone https://github.com/notfixingit3/waffle.git cd waffle -
Start everything
docker compose up --buildDocker Compose will:
- Build the Go application (multi-stage)
- Start PostgreSQL 16
- Run all database migrations automatically
- Inject safe local-development defaults (DB connection, JWT secret, admin credentials)
You do not need to create a
.envfile for local development. -
Open the app
Service URL Public application http://localhost:8383Admin login http://localhost:8383/admin/loginHealth check http://localhost:8383/healthPostgreSQL localhost:5432
Default Credentials
| Field | Value |
|---|---|
| Username | admin |
| Password | syrup |
| Role | super_admin |
To use a different password in local dev, pass it as an environment variable:
ADMIN_PASSWORD=mypassword docker compose up --build
What's Running
The docker compose up command starts two containers:
- app — the Go binary serving HTTP on port 8383
- postgres — PostgreSQL 16 on port 5432, database name
syrup
The Go app waits for PostgreSQL to be healthy before starting, then runs all pending migrations from backend/migrations/ automatically.
A seed waffle and admin are inserted on a fresh database so the app is useful immediately.
First Steps After Login
After logging in to /admin/login with the default credentials:
- Change your password — click your username in the top-right → Settings → Change Password.
- Set your timezone — on the same Settings page, choose your IANA timezone from the dropdown so waffle timestamps appear correctly.
- Create your first real waffle — click New Waffle on the admin dashboard.
- Share the public link — the public URL is
http://<your-domain>/waffle/<slug>. Post it in your Instagram story or DM it to your buyers.
http://192.168.1.x:8383/waffle/demo) in a DM to yourself and open it inside the Instagram app to test the mobile buyer flow.
Install as a PWA
Project Syrup ships a Web App Manifest and service worker, so it can be installed as a Progressive Web App on iOS and Android. Buyers can add the waffle page to their home screen for a native-app feel.
- iOS (Safari): Share → Add to Home Screen
- Android (Chrome): Menu → Add to Home Screen / Install App
PWA installation and service worker offline caching require HTTPS in production. Local localhost is a secure context and works without HTTPS.
Stopping the App
# Stop containers (data is preserved)
docker compose down
# Stop and wipe all data (fresh start)
docker compose down -v
docker compose down -v removes the PostgreSQL volume. All waffles, spots, and admins will be gone. Use only when you want a clean slate.