diff --git a/kan/.env b/kan/.env new file mode 100644 index 0000000..9de2a78 --- /dev/null +++ b/kan/.env @@ -0,0 +1,4 @@ +NEXT_PUBLIC_BASE_URL="https://kan.mysite.net" +BETTER_AUTH_SECRET="32-character-random-string" +POSTGRES_PASSWORD="mypassword" +POSTGRES_URL="http://kan:mypassword@kan-db:5432/kan_db" \ No newline at end of file diff --git a/kan/docker-compose.yml b/kan/docker-compose.yml new file mode 100644 index 0000000..a3e4d9d --- /dev/null +++ b/kan/docker-compose.yml @@ -0,0 +1,58 @@ +services: + migrate: + image: ghcr.io/kanbn/kan-migrate:latest + container_name: kan-migrate + networks: + - kan-network + environment: + - POSTGRES_URL=${POSTGRES_URL} + depends_on: + postgres: + condition: service_healthy + restart: "no" + + web: + image: ghcr.io/kanbn/kan:latest + container_name: kan-web + expose: + - 3000 + networks: + - kan-network + env_file: + - .env + environment: + - NEXT_PUBLIC_BASE_URL=${NEXT_PUBLIC_BASE_URL} + - BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET} + - POSTGRES_URL=${POSTGRES_URL} + - NEXT_PUBLIC_ALLOW_CREDENTIALS=true + depends_on: + migrate: + condition: service_completed_successfully + restart: unless-stopped + + postgres: + image: postgres:15 + container_name: kan-db + environment: + - POSTGRES_DB=kan_db + - POSTGRES_USER=kan + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + ports: + - 5432:5432 + volumes: + - kan_postgres_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U kan -d kan_db"] + interval: 5s + timeout: 5s + retries: 10 + restart: unless-stopped + networks: + - kan-network + +networks: + kan-network: + external: true + +volumes: + kan_postgres_data: \ No newline at end of file