update_server/DEVELOPMENT_WORKFLOW.md
2026-06-10 20:51:17 +03:00

1.8 KiB

Update Server - Development Workflow

Recommendation

Start development locally on your Mac.

Only move to Proxmox after the first complete flow works:

  • admin login;
  • create project;
  • upload release;
  • create API key;
  • download release through API.

This is the fastest and least painful path.

Why not start directly on Proxmox

  • slower iteration cycle;
  • harder debugging;
  • extra network and proxy setup too early;
  • file upload and local logs are less convenient while the app is changing a lot.

Stage 1 - Local development on Mac

  • keep the whole project in one directory;
  • run Go locally;
  • store local dev data in a project folder like ./data-dev;
  • use SQLite locally;
  • build the admin pages and API here first.

Stage 2 - Local container verification

  • add Dockerfile;
  • add docker-compose.yml if needed;
  • verify the app runs with mounted /data;
  • verify uploads and DB survive container restart.

Stage 3 - Deploy to Proxmox

  • create VM or LXC;
  • run app container;
  • mount persistent storage for /data;
  • place Caddy or Nginx in front for HTTPS;
  • expose only the reverse proxy to the internet;
  • optionally protect admin UI by IP allow-list or VPN.

Local development checklist

  • install Go
  • initialize module
  • add SQLite migrations
  • create .env or env loader for dev values
  • run server locally
  • test upload/download with browser and curl
  • only then freeze container setup

Deployment checklist

  • persistent volume for SQLite and artifacts
  • HTTPS configured
  • strong SESSION_SECRET
  • bootstrap admin credentials
  • backup strategy for /data
  • logs enabled
  • rate limiting enabled

Final recommendation

Develop on Mac first.

Use Proxmox as the deployment target, not as the primary coding environment.