Wapy

Subscriptions manager.

Example docker-compose.yml

services:
  db-wapy:
    container_name: wapydev-db
    image: postgres:17.4
    restart: unless-stopped
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
    volumes:
      - ./db:/var/lib/postgresql/data

  app-wapy:
    container_name: wapy
    image: ghcr.io/meceware/wapy.dev:latest
    restart: unless-stopped
    env_file:
      - .env
    depends_on:
      - db-wapy

  cron-wapy:
    container_name: wapydev-cron
    image: alpine:3.21
    restart: unless-stopped
    command: >
      sh -c 'while true; do
        /usr/bin/flock -n /tmp/wapy.lockfile wget -qO- app-wapy:3000/api/cron/;
        sleep 60;
      done'
    depends_on:
      - app-wapy

Example .env

POSTGRES_DB=wapydev
POSTGRES_USER=wapydev
POSTGRES_PASSWORD=SECUUUUUURE

DATABASE_URL="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db-wapy:5432/${POSTGRES_DB}?schema=public"

SITE_URL=https://wapy.example.com

NEXT_PUBLIC_VAPID_PUBLIC_KEY=SECUUUUUURE
VAPID_PRIVATE_KEY=SECUUUUUURE
SUBSCRIPTION_JWT_SECRET=SECUUUUUURE

AUTH_SECRET=SECUUUUUURE
AUTH_TRUST_HOST=true
AUTH_URL=${SITE_URL}/api/auth

# Github
GITHUB_ID=SECUUUUUURE
GITHUB_SECRET=SECUUUUUURE