74 lines
1.8 KiB
Markdown
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.
|