Portainer stores environment variables in stack.env, not .env.
Add --env-file stack.env to compose commands in the deploy step.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
docker compose up -d was recreating act_runner, killing the job
mid-execution. Explicitly target db, backend, frontend only.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The docker:cli container's working dir /deploy caused compose to
create a new 'deploy' project instead of updating the existing
'umbra' stack. Adding -p umbra ensures it manages the right containers.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Pin deploy container to docker:27-cli (avoid compose version drift)
- Add --pull to both docker build commands (keep base images fresh)
- Increase health check sleep to 30s (backend start_period is 30s)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The job container can't access the host filesystem directly.
Spawn a docker:cli container that mounts the host's DEPLOY_PATH
(where docker-compose.yaml and .env live) and runs compose commands.
Requires DEPLOY_PATH variable in Gitea (e.g. /home/user/.../UMBRA).
When moving to a new host, only the Gitea variable needs updating.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The job container doesn't have /opt/umbra. Use the checked-out
repo's docker-compose.yaml (already in the working directory).
Combined pull + deploy into one step. Increased health check wait.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Replace all GitHub action clones (login-action, build-push-action)
with plain docker CLI commands — eliminates GitHub dependency
- Expand act_runner_config.yaml to full format (partial config was
silently falling back to defaults)
- Mount config at /etc/act_runner/ with CONFIG_FILE env var to avoid
named volume shadowing at /data/
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Gitea reserves the GITEA_ prefix for secrets. Reuse the existing
REGISTRY_TOKEN PAT which already has repo read access.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
CI/CD fixes (from debugger + docker specialist review):
- Add explicit GITEA_TOKEN for checkout auth
- Add act_runner_config.yaml with container.network: host so job
containers can reach git.sentinelforest.xyz (root cause of 0s
silent checkout failure)
- Mount config into act_runner container
UI: Enlarge save/close/edit/delete icons in all detail panels
(EventDetailPanel, TodoDetailPanel, ReminderDetailPanel,
TaskDetailPanel, EntityDetailPanel) from h-7/h-3.5 to h-8/h-4
for better visibility and click targets.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds a workflow that triggers on push to main: builds backend/frontend
Docker images, pushes to Gitea container registry, pulls and restarts
on the host, health checks, prunes old images, and sends ntfy notifications.
docker-compose.yaml updated to pull pre-built images from registry and
includes act_runner as a 4th service.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>