# 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. ## Recommended workflow ### 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.