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

74 lines
1.8 KiB
Markdown

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