Remove private deployment details
This commit is contained in:
@@ -1,104 +0,0 @@
|
||||
# Importarr Agent Instructions
|
||||
|
||||
Importarr is owned as a Linux-ops-managed service repository. Treat this checkout as the source of truth for application code, deployment files, and local service installs.
|
||||
|
||||
## Repository Source Of Truth
|
||||
|
||||
- Work from `/srv/opencode-workspace/importarr` for Importarr code and deploy changes.
|
||||
- The live service is installed on `dgsserver1` from a repo checkout at `/opt/importarr/repo`; gmk1 installs are not the public Importarr service.
|
||||
- Do not edit host-local legacy scripts as the normal workflow:
|
||||
- `/usr/local/sbin/importarr-status.py`
|
||||
- `/usr/local/sbin/manual-media-import.py`
|
||||
- If an emergency hotfix is made outside the repo, backport it here immediately and reinstall from the repo.
|
||||
|
||||
## Seamless Feature Workflow
|
||||
|
||||
When asked to implement an Importarr feature, fix, UI change, deployment change, or operational behavior change:
|
||||
|
||||
1. Inspect `git status --short --branch` before editing.
|
||||
2. Implement the smallest correct repo change.
|
||||
3. Run the narrowest useful verification, normally:
|
||||
```sh
|
||||
.venv/bin/pytest -q
|
||||
```
|
||||
If shell deploy scripts changed, also run:
|
||||
```sh
|
||||
sh -n deploy/systemd-install.sh && sh -n deploy/repo-upgrade.sh
|
||||
```
|
||||
4. Inspect `git diff` and ensure no secrets, raw `.env`, tokens, databases, or private material are included.
|
||||
5. Commit and push completed Importarr changes by default unless the user explicitly asks not to publish or verification is blocked.
|
||||
6. Install/restart on `dgsserver1` from the repository so the public service matches the repo:
|
||||
```sh
|
||||
ssh -p 2222 opencode@dgsserver1 'sudo -n sh /opt/importarr/repo-upgrade.sh'
|
||||
```
|
||||
7. Verify the live service:
|
||||
```sh
|
||||
make verify-live
|
||||
```
|
||||
8. If the live install fails, inspect `systemctl status importarr.service` and `journalctl -u importarr.service`; fix the repo, commit/push the fix, reinstall, and verify again.
|
||||
|
||||
## Gitea Issue Completion Workflow
|
||||
|
||||
When the user points an agent at an Importarr Gitea issue and asks to solve it, the expected end-to-end flow is mandatory unless the user explicitly says not to deploy:
|
||||
|
||||
1. Read the issue first, including comments and acceptance criteria.
|
||||
2. Implement the smallest correct repo change on a dedicated issue branch when appropriate.
|
||||
3. Run the narrowest useful tests/checks.
|
||||
4. Commit and push the completed change to `main` or merge/push the issue branch as instructed.
|
||||
5. Update the Gitea issue with what changed and the verification that ran, then close it when solved.
|
||||
6. Update the `dgsserver1` install from the pushed repo state:
|
||||
```sh
|
||||
ssh -p 2222 opencode@dgsserver1 'sudo -n sh /opt/importarr/repo-upgrade.sh'
|
||||
```
|
||||
7. Restart/verify the `dgsserver1` service from the repo-managed install and confirm the public URL:
|
||||
```sh
|
||||
ssh -p 2222 opencode@dgsserver1 'sudo -n systemctl status importarr.service --no-pager -l'
|
||||
curl -fsS https://importarr.delphas.dk/health
|
||||
```
|
||||
|
||||
If the worker timer is intentionally paused, do not re-enable it unless the issue explicitly includes worker scheduling or the user approves.
|
||||
|
||||
## Install Model
|
||||
|
||||
- The service virtualenv lives at `/opt/importarr/venv` on `dgsserver1`.
|
||||
- The status UI systemd unit runs `/opt/importarr/venv/bin/importarr-status` from the packaged repo install.
|
||||
- The manual worker systemd unit runs `/opt/importarr/venv/bin/manual-media-import` from the packaged repo install.
|
||||
- The package is installed from the repository into the venv using normal wheel/package install, not editable install.
|
||||
- Do **not** use editable install for the system service: the unprivileged `importarr` user may not be able to read `/srv/opencode-workspace/importarr`, causing `ModuleNotFoundError` at startup.
|
||||
- `/opt/importarr/repo-upgrade.sh` is the pull-and-reinstall helper for machines that should follow pushed `main`.
|
||||
|
||||
## Local Commands
|
||||
|
||||
```sh
|
||||
make test
|
||||
make install-systemd
|
||||
make upgrade-local
|
||||
make repo-upgrade
|
||||
make verify-live
|
||||
```
|
||||
|
||||
`make repo-upgrade` is for pulling already-pushed changes with `git pull --ff-only`. It refuses to run with uncommitted repo changes.
|
||||
|
||||
## Runtime Defaults On This Host
|
||||
|
||||
- Public URL: `https://importarr.delphas.dk/`
|
||||
- dgsserver1 local URL: `http://127.0.0.1:8095/`
|
||||
- Health: `http://127.0.0.1:8095/health`
|
||||
- Status: `http://127.0.0.1:8095/api/status`
|
||||
- Systemd service: `importarr.service`
|
||||
- Env file: `/etc/importarr/importarr.env`
|
||||
- SQLite state: `/var/lib/importarr/importarr.db`
|
||||
|
||||
## Secret Handling
|
||||
|
||||
- Prefer `*_FILE` settings for secrets, for example:
|
||||
- `IMPORTARR_SAB_API_KEY_FILE`
|
||||
- `IMPORTARR_AUTH_TOKEN_FILE`
|
||||
- `IMPORTARR_RADARR_API_KEY_FILE`
|
||||
- `IMPORTARR_SONARR_API_KEY_FILE`
|
||||
- Never commit real env files, API keys, tokens, private keys, service databases, or backup data.
|
||||
- Template files may list variable names with placeholder values or commented examples only.
|
||||
|
||||
## Linux Ops Follow-Through
|
||||
|
||||
For changes that materially alter the live service setup, ports, routes, monitoring, backup coverage, or host ownership, also follow the linux-ops documentation/systems-overview update rules. Do not mix unrelated pre-existing uncommitted changes from `linux-ops-docs` or `systems-overview` into Importarr commits.
|
||||
Reference in New Issue
Block a user