{"id":51217746,"url":"https://github.com/visorcraft/docker-roamarr","last_synced_at":"2026-06-28T05:03:08.980Z","repository":{"id":367770739,"uuid":"1282230488","full_name":"visorcraft/docker-roamarr","owner":"visorcraft","description":"Container image for Roamarr — the self-hosted TripIt-style travel organizer. Multi-stage build from github.com/visorcraft/roamarr.","archived":false,"fork":false,"pushed_at":"2026-06-27T14:24:49.000Z","size":17,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-27T16:13:31.719Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/visorcraft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-27T13:50:58.000Z","updated_at":"2026-06-27T14:24:52.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/visorcraft/docker-roamarr","commit_stats":null,"previous_names":["visorcraft/docker-roamarr"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/visorcraft/docker-roamarr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/visorcraft%2Fdocker-roamarr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/visorcraft%2Fdocker-roamarr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/visorcraft%2Fdocker-roamarr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/visorcraft%2Fdocker-roamarr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/visorcraft","download_url":"https://codeload.github.com/visorcraft/docker-roamarr/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/visorcraft%2Fdocker-roamarr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34877472,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-28T02:00:05.809Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-28T05:03:08.299Z","updated_at":"2026-06-28T05:03:08.963Z","avatar_url":"https://github.com/visorcraft.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- SPDX-FileCopyrightText: 2026 VisorCraft LLC --\u003e\n\u003c!-- SPDX-License-Identifier: GPL-3.0-only --\u003e\n\n# Roamarr - container image\n\nThis repository builds a ready-to-run container image for\n[**Roamarr**](https://github.com/visorcraft/roamarr), the self-hosted\nTripIt-style travel organizer.\n\nThe `Dockerfile` is a multi-stage build that clones Roamarr from GitHub\n(latest `master` by default), compiles the SvelteKit production bundle, and\nships it on a slim Node.js runtime with only production dependencies. The\nSQLite database and receipt attachments live on a single mounted volume so a\ncontainer can be recreated or upgraded without data loss.\n\n## Quick start\n\n```bash\n# 1. Build the image from this repo\npodman build -t roamarr .\n# or: docker build -t roamarr .\n\n# 2. Create a persistent volume and run\npodman volume create roamarr-data\npodman run -d --name roamarr \\\n  -p 3000:3000 \\\n  -v roamarr-data:/data \\\n  -e ROAMARR_SECRET=\"$(openssl rand -base64 32)\" \\\n  --restart unless-stopped \\\n  roamarr\n```\n\nOpen `http://localhost:3000/setup` on first boot to create the admin account.\n\n## docker-compose\n\nA ready-to-use compose file is included as `docker-compose.yml`:\n\n```bash\nopenssl rand -base64 32   # use this output for ROAMARR_SECRET below\ndocker compose up -d\n```\n\nSee [`docker-compose.yml`](docker-compose.yml).\n\n## Configuration\n\nRoamarr is configured almost entirely through environment variables at boot and\nthrough the in-app Settings area afterwards.\n\n| Variable | Required | Default | Notes |\n| -------- | -------- | ------- | ----- |\n| `ROAMARR_SECRET` | **yes** | none | Base64 32-byte key used for at-rest encryption. The app refuses to boot without it. Generate with `openssl rand -base64 32`. |\n| `DATABASE_PATH` | no | `/data/roamarr.db` | SQLite database path. Receipt attachments are stored beside it under `/data/attachments/`. |\n| `PORT` | no | `3000` | Port the adapter-node server listens on. |\n| `ORIGIN` | no | none | Public origin (e.g. `https://roamarr.example.com`) for correct cookies/redirects behind a reverse proxy. |\n\n### Volumes\n\n| Container path | Purpose |\n| -------------- | ------- |\n| `/data` | SQLite database + receipt attachments. **Mount this as a named volume or host bind to persist data across upgrades.** |\n\n### Ports\n\n| Port | Purpose |\n| ---- | ------- |\n| `3000` | Roamarr web UI / HTTP API. |\n\n## Building a specific release\n\nThe `ROAMARR_REF` build arg selects the git ref (branch, tag, or commit) of\n`visorcraft/roamarr` to build:\n\n```bash\n# Latest master (default)\npodman build -t roamarr .\n\n# Pinned release tag\npodman build --build-arg ROAMARR_REF=v0.3.7 -t roamarr:0.3.7 .\n```\n\n`NODE_VERSION` (default `22`) selects the Node.js major for both build and\nruntime stages. Roamarr requires Node.js \u003e= 22.12.\n\n## Upgrading\n\nThe database lives on the `/data` volume, so upgrades are safe:\n\n```bash\npodman pull \u003cyour-registry\u003e/roamarr:latest   # or: podman build -t roamarr .\npodman stop roamarr\npodman rm roamarr\n# Recreate with the SAME -v roamarr-data:/data as before\npodman run -d --name roamarr -p 3000:3000 -v roamarr-data:/data \\\n  -e ROAMARR_SECRET='\u003csame secret as before\u003e' --restart unless-stopped roamarr\n```\n\nRoamarr applies database migrations automatically on boot, before the scheduler\nstarts. **Always back up the `/data` volume before upgrading.**\n\n## Architecture\n\nThis image is built on Debian Bookworm (`node:22-bookworm-slim` runtime) and is\ntested on `linux/amd64` and `linux/arm64`. `better-sqlite3` native modules are\ncompiled in the build stage and copied into the runtime stage.\n\n## Support\n\n- Roamarr application: [visorcraft/roamarr](https://github.com/visorcraft/roamarr)\n- Security policy: [docs/SECURITY.md](https://github.com/visorcraft/roamarr/blob/master/docs/SECURITY.md)\n- License: Roamarr is GPL-3.0-only. See the\n  [application LICENSE](https://github.com/visorcraft/roamarr/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvisorcraft%2Fdocker-roamarr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvisorcraft%2Fdocker-roamarr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvisorcraft%2Fdocker-roamarr/lists"}