Auto-indexing service and GraphQL API for AT Protocol Records
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

docs: add Quick Start section and separate Docker Compose files

- Add Quick Start section to README with Docker and native dev instructions
- Simplify docker-compose.yml for SQLite (default)
- Add docker-compose.postgres.yml for PostgreSQL deployments
- Update .env.example with sslmode param for PostgreSQL

+80 -27
+44
README.md
··· 76 76 } 77 77 ``` 78 78 79 + ## Quick Start 80 + 81 + ### Docker (Fastest) 82 + 83 + Run Quickslice locally with Docker: 84 + 85 + ```bash 86 + docker compose up --build 87 + ``` 88 + 89 + Open http://localhost:8080 and login with your Bluesky handle. 90 + 91 + For PostgreSQL instead of SQLite: 92 + 93 + ```bash 94 + docker compose -f docker-compose.postgres.yml up --build 95 + ``` 96 + 97 + ### Native Development 98 + 99 + For development without Docker: 100 + 101 + **Prerequisites:** 102 + - [Gleam](https://gleam.run/getting-started/installing/) v1.13+ 103 + - [dbmate](https://github.com/amacneil/dbmate) for migrations 104 + - Node.js 18+ (for client build) 105 + 106 + **Setup:** 107 + 108 + ```bash 109 + # Server 110 + cd server 111 + cp .env.example .env 112 + make db-setup-sqlite 113 + gleam run 114 + 115 + # Client (rebuild after changes) 116 + cd client 117 + npm install 118 + gleam run -m lustre/dev build 119 + ``` 120 + 121 + See [server/README.md](server/README.md) for detailed configuration. 122 + 79 123 ## Documentation 80 124 81 125 - [Queries](docs/guides/queries.md)
+34
docker-compose.postgres.yml
··· 1 + services: 2 + quickslice: 3 + build: . 4 + ports: 5 + - "8080:8080" 6 + environment: 7 + - HOST=0.0.0.0 8 + - PORT=8080 9 + - DATABASE_URL=postgres://quickslice:quickslice@postgres:5432/quickslice?sslmode=disable 10 + - JETSTREAM_URL=wss://jetstream2.us-west.bsky.network/subscribe 11 + # NOTE: Do NOT use in production - generate your own secure key 12 + - SECRET_KEY_BASE=Xdb/9oovpIzYRKPjfTm45QSWYyYJi35GY3n4475SBVmcyxHS9tMoFJcOwPGfA0xW 13 + - JETSTREAM_DISABLE_CURSOR=true 14 + - EXTERNAL_BASE_URL=http://127.0.0.1:8080 15 + # NOTE: Do NOT use in production - generate your own secure key 16 + - OAUTH_SIGNING_KEY=z42tsNCXT8jZHj37qRd1D1vBE4qns8rp43DZsm1uez3cr8h6 17 + - OAUTH_LOOPBACK_MODE=true 18 + restart: on-failure:5 19 + depends_on: 20 + - postgres 21 + 22 + postgres: 23 + image: postgres:16-alpine 24 + environment: 25 + - POSTGRES_USER=quickslice 26 + - POSTGRES_PASSWORD=quickslice 27 + - POSTGRES_DB=quickslice 28 + volumes: 29 + - postgres-data:/var/lib/postgresql/data 30 + ports: 31 + - "5432:5432" 32 + 33 + volumes: 34 + postgres-data:
+1 -26
docker-compose.yml
··· 1 - version: "3.8" 2 - 3 1 services: 4 2 quickslice: 5 - image: ghcr.io/bigmoves/quickslice:latest 3 + build: . 6 4 ports: 7 5 - "8080:8080" 8 6 volumes: ··· 10 8 environment: 11 9 - HOST=0.0.0.0 12 10 - PORT=8080 13 - # Database configuration - supports SQLite or PostgreSQL 14 - # SQLite (default): sqlite:/data/quickslice.db 15 - # PostgreSQL: postgres://user:pass@postgres:5432/quickslice 16 11 - DATABASE_URL=sqlite:/data/quickslice.db 17 12 - JETSTREAM_URL=wss://jetstream2.us-west.bsky.network/subscribe 18 13 # NOTE: Do NOT use in production - generate your own secure key ··· 22 17 # NOTE: Do NOT use in production - generate your own secure key 23 18 - OAUTH_SIGNING_KEY=z42tsNCXT8jZHj37qRd1D1vBE4qns8rp43DZsm1uez3cr8h6 24 19 - OAUTH_LOOPBACK_MODE=true 25 - - OAUTH_SUPPORTED_SCOPES="atproto transition:generic" 26 - - BACKFILL_REPO_TIMEOUT=30 27 - - BACKFILL_MAX_PDS_WORKERS=20 28 - - BACKFILL_PDS_CONCURRENCY=6 29 - - BACKFILL_MAX_HTTP_CONCURRENT=100 30 20 restart: on-failure:5 31 21 32 - # Optional: PostgreSQL database service 33 - # Uncomment to use PostgreSQL instead of SQLite 34 - # Then set DATABASE_URL=postgres://quickslice:quickslice@postgres:5432/quickslice 35 - postgres: 36 - image: postgres:16-alpine 37 - environment: 38 - - POSTGRES_USER=quickslice 39 - - POSTGRES_PASSWORD=quickslice 40 - - POSTGRES_DB=quickslice 41 - volumes: 42 - - postgres-data:/var/lib/postgresql/data 43 - ports: 44 - - "5432:5432" 45 - 46 22 volumes: 47 23 quickslice-data: 48 - postgres-data:
+1 -1
server/.env.example
··· 25 25 # Database Configuration 26 26 # Supports both SQLite and PostgreSQL via connection URL format: 27 27 # SQLite: sqlite:data/quickslice.db or sqlite::memory: 28 - # PostgreSQL: postgres://user:pass@localhost:5432/quickslice 28 + # PostgreSQL: postgres://user:pass@localhost:5432/quickslice?sslmode=disable 29 29 # For SQLite, the path is relative to the server root 30 30 DATABASE_URL=sqlite:data/quickslice.db 31 31