feat: add caddy config
This commit is contained in:
@@ -1,6 +1,9 @@
|
|||||||
COMPOSE_PROFILES=db,userbot,api
|
COMPOSE_PROFILES=db,userbot,api
|
||||||
RUN_ENVIRONMENT=prod
|
RUN_ENVIRONMENT=prod
|
||||||
|
|
||||||
|
# Leave empty for *.localhost.
|
||||||
|
FRONTEND_DEV_HOST=
|
||||||
|
|
||||||
DB__HOST=postgres
|
DB__HOST=postgres
|
||||||
DB__PORT=5432
|
DB__PORT=5432
|
||||||
DB__USER=beavergram
|
DB__USER=beavergram
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
.PHONY: recreate down restart rebuild deploy migrate session-create
|
.PHONY: recreate down restart rebuild deploy migrate session-create frontend
|
||||||
|
|
||||||
recreate:
|
recreate:
|
||||||
docker compose up -d --force-recreate
|
docker compose up -d --force-recreate
|
||||||
@@ -13,7 +13,11 @@ rebuild:
|
|||||||
docker compose build
|
docker compose build
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
|
|
||||||
|
frontend:
|
||||||
|
docker compose run --rm --no-deps frontend-dev sh -c "bun install && bun run build"
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
|
$(MAKE) frontend
|
||||||
$(MAKE) rebuild
|
$(MAKE) rebuild
|
||||||
|
|
||||||
migrate:
|
migrate:
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
CLOUDFLARE_API_TOKEN=
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
Caddyfile
|
||||||
|
.env
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
admin off
|
||||||
|
# acme_dns cloudflare {env.CLOUDFLARE_API_TOKEN}
|
||||||
|
|
||||||
|
log {
|
||||||
|
format console
|
||||||
|
}
|
||||||
|
|
||||||
|
servers {
|
||||||
|
trusted_proxies cloudflare
|
||||||
|
client_ip_headers Cf-Connecting-Ip
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
<DOMAIN> {
|
||||||
|
@backend path /api/* /mcp/*
|
||||||
|
handle @backend {
|
||||||
|
reverse_proxy beavergram-api:8080
|
||||||
|
}
|
||||||
|
|
||||||
|
handle {
|
||||||
|
root * /srv
|
||||||
|
try_files {path} /index.html
|
||||||
|
file_server
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dev.<DOMAIN> {
|
||||||
|
reverse_proxy beavergram-frontend:5173
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
services:
|
||||||
|
caddy:
|
||||||
|
image: ghcr.io/caddybuilds/caddy-cloudflare:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "0.0.0.0:80:80"
|
||||||
|
- "0.0.0.0:443:443"
|
||||||
|
- "0.0.0.0:443:443/udp"
|
||||||
|
networks:
|
||||||
|
- caddy
|
||||||
|
volumes:
|
||||||
|
- ./Caddyfile:/etc/caddy/Caddyfile
|
||||||
|
- ../frontend/build:/srv:ro
|
||||||
|
- caddy_data:/data
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
|
||||||
|
networks:
|
||||||
|
caddy:
|
||||||
|
external: true
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
caddy_data:
|
||||||
@@ -1,12 +1,26 @@
|
|||||||
services:
|
services:
|
||||||
postgres:
|
# postgres:
|
||||||
ports:
|
# ports:
|
||||||
- "127.0.0.1:5433:5432"
|
# - "127.0.0.1:5432:5432"
|
||||||
|
|
||||||
api:
|
api:
|
||||||
ports:
|
# ports:
|
||||||
- "127.0.0.1:8080:8080"
|
# - "127.0.0.1:8080:8080"
|
||||||
|
networks:
|
||||||
|
default: {}
|
||||||
|
caddy:
|
||||||
|
aliases:
|
||||||
|
- beavergram-api
|
||||||
|
|
||||||
frontend-dev:
|
frontend-dev:
|
||||||
ports:
|
# ports:
|
||||||
- "127.0.0.1:5173:5173"
|
# - "127.0.0.1:5173:5173"
|
||||||
|
networks:
|
||||||
|
default: { }
|
||||||
|
caddy:
|
||||||
|
aliases:
|
||||||
|
- beavergram-frontend
|
||||||
|
|
||||||
|
networks:
|
||||||
|
caddy:
|
||||||
|
external: true
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ services:
|
|||||||
command: ["sh", "-c", "bun install && bun run dev --host 0.0.0.0 --port 5173"]
|
command: ["sh", "-c", "bun install && bun run dev --host 0.0.0.0 --port 5173"]
|
||||||
environment:
|
environment:
|
||||||
API_PROXY_TARGET: http://api:8080
|
API_PROXY_TARGET: http://api:8080
|
||||||
|
ALLOWED_HOSTS: ${FRONTEND_DEV_HOST:-}
|
||||||
volumes:
|
volumes:
|
||||||
- ./frontend:/app
|
- ./frontend:/app
|
||||||
- frontend_node_modules:/app/node_modules
|
- frontend_node_modules:/app/node_modules
|
||||||
|
|||||||
@@ -3,6 +3,9 @@ import tailwindcss from "@tailwindcss/vite";
|
|||||||
import { defineConfig } from "vite";
|
import { defineConfig } from "vite";
|
||||||
|
|
||||||
const proxyTarget = process.env.API_PROXY_TARGET ?? "http://127.0.0.1:8080";
|
const proxyTarget = process.env.API_PROXY_TARGET ?? "http://127.0.0.1:8080";
|
||||||
|
const allowedHosts = process.env.ALLOWED_HOSTS
|
||||||
|
? process.env.ALLOWED_HOSTS.split(",")
|
||||||
|
: undefined;
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [tailwindcss(), sveltekit()],
|
plugins: [tailwindcss(), sveltekit()],
|
||||||
@@ -14,6 +17,7 @@ export default defineConfig({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
server: {
|
server: {
|
||||||
|
allowedHosts,
|
||||||
proxy: {
|
proxy: {
|
||||||
"/api": { target: proxyTarget, changeOrigin: true },
|
"/api": { target: proxyTarget, changeOrigin: true },
|
||||||
"/mcp": { target: proxyTarget, changeOrigin: true },
|
"/mcp": { target: proxyTarget, changeOrigin: true },
|
||||||
|
|||||||
Reference in New Issue
Block a user