Server / Traefik reference (DogeSoft edge)¶
Use this file as the inventory for how public hostnames attach to Compose services. It contains no passwords; fill on-server paths in your own copy or internal wiki if you need absolute local paths.
Convention (this monorepo): Traefik talks to app containers on the external Docker network proxy. Labels use websecure + tls.certresolver=letsencrypt (names must match your Traefik static config).
One-time on a host¶
docker network create proxy
If the network already exists, Docker prints an error β that is fine.
Hostname β service (from repo layouts)¶
| Public host (example) | Compose project / path in repo | Compose file | Service name(s) | Backend port inside container |
|---|---|---|---|---|
maps.dogesoft.io |
dogemaps/ |
docker-compose.yml |
dogemaps |
80 (nginx) |
drc20.dogesoft.io |
drc20_swap_amm/ |
compose.yml |
drc20_web (+ redirect router on dogesoft.io) |
80 |
bridge.dogesoft.io |
dogesoft_bridge/ |
docker-compose.yml |
bridge_web (HTML), bridge_api (/api) |
80, 3001 |
docs.dogesoft.io |
site/ |
compose.yml |
docs |
80 |
indexer.dogesoft.io |
indexer_explorer_dogemapinscribe/ |
docker-compose.yml + optional infra/traefik/docker-compose.traefik.yml |
rust-indexer |
8091 |
Other stacks (e.g. play API, marketplace) may use the same proxy network and the same label style; discover them on the server with the commands below.
Deploy or refresh dogemaps (maps)¶
Layout A β full repo path (simplest): the current directory is the dogemaps/ tree from git (contains Dockerfile, src/, package.json).
cd /path/to/DogeSoftEco/dogemaps
docker compose up -d --build
Layout B β compose only under sites/maps (or similar): you keep docker-compose.yml in e.g. ~/sites/maps but the source lives elsewhere. Docker needs a build context that includes the Dockerfile.
Create ~/sites/maps/.env (do not commit) with the absolute path to the real dogemaps project root:
# Example β set to YOUR checkout path on Eden
DOGEMAPS_BUILD_CONTEXT=/home/eden/path/to/DogeSoftEco/dogemaps
Then:
cd ~/sites/maps
docker compose -f docker-compose.yml up -d --build
Use the same docker-compose.yml content as in the repo; Compose reads .env next to it for DOGEMAPS_BUILD_CONTEXT.
Layout C β sites/maps with only compose + env (sources elsewhere): copy docker-compose.yml, nginx.conf, and .env.example β .env from dogemaps/, then set DOGEMAPS_BUILD_CONTEXT and MARKETPLACE_BUILD_CONTEXT to absolute paths on the server (same idea as Layout B). There is a single compose file: it always builds the Vite image and runs maps_marketplace.
Rebuild flow: after npm run build in dogemaps/ (output html/), rebuild and restart the UI container from a checkout that includes that build, e.g. docker compose build dogemaps && docker compose up -d. Nginx config can be updated without rebuild via the ./nginx.conf bind mount in compose.
--buildwhen you change app sources orVITE_*build args.- Ensure DNS for
maps.dogesoft.iopoints at the machine that runs Traefik. - Dogemaps compose files do not publish host ports by default β Traefik reaches nginx on
proxyonly (avoids8080already allocated errors). Uncomment the optionalportsblock in the YAML if you needcurlto localhost while debugging.
Commands to investigate the edge (run on the server)¶
Traefik container and version
docker ps --filter "name=traefik" --format "table {{.Names}}\t{{.Image}}\t{{.Status}}"
Who is on the proxy network
docker network inspect proxy --format '{{range .Containers}}{{.Name}} {{end}}'
List routers (Traefik v2+ API β if enabled, default :8080 on traefik)
curl -sS http://127.0.0.1:8080/api/http/routers | head -c 4000
If the API is disabled or on another port, use your Traefik dashboard / static config path instead.
Smoke test TLS and routing
curl -sS -o /dev/null -w "%{http_code}\n" https://maps.dogesoft.io/
curl -sS -o /dev/null -w "%{http_code}\n" https://bridge.dogesoft.io/
curl -sS -o /dev/null -w "%{http_code}\n" https://drc20.dogesoft.io/
Logs
docker logs traefik --tail 100 2>&1
docker logs dogemaps_dogesoft --tail 50 2>&1
Adding another *.dogesoft.io static site¶
- DNS A/AAAA β Traefik host.
- Service joins
networks: [proxy]and defineslabelswithHost(\new.example.dogesoft.io`),entrypoints=websecure,tls.certresolver=letsencrypt, andloadbalancer.server.port` = the port the container listens on. docker compose up -d --buildfor that project.- Update this documentβs table in git so operators and automation stay aligned.
Changing hostname for dogemaps (forks / staging)¶
Edit dogemaps/docker-compose.yml β the traefik.http.routers.dogemaps.rule=Host(...) label β then rebuild/recreate the container.
Do not commit¶
Real server paths (e.g. /home/...), API keys, DB passwords, or Traefik ACME email secrets belong only in private env files and backup stores β not in this reference.