FossilRepo
| 2eca4eb… | ragelink | 1 | # Prerequisites |
| 2eca4eb… | ragelink | 2 | |
| 2eca4eb… | ragelink | 3 | Before installing fossilrepo, ensure your server meets these requirements. |
| 2eca4eb… | ragelink | 4 | |
| 2eca4eb… | ragelink | 5 | ## System Requirements |
| 2eca4eb… | ragelink | 6 | |
| 2eca4eb… | ragelink | 7 | | Requirement | Minimum | |
| 2eca4eb… | ragelink | 8 | |---|---| |
| 2eca4eb… | ragelink | 9 | | **OS** | Linux (Ubuntu 22.04+, Debian 12+, RHEL 9+) or macOS 13+ | |
| 2eca4eb… | ragelink | 10 | | **CPU** | 1 vCPU | |
| 2eca4eb… | ragelink | 11 | | **RAM** | 1 GB | |
| 2eca4eb… | ragelink | 12 | | **Disk** | 10 GB (scales with repo count) | |
| 2eca4eb… | ragelink | 13 | | **Python** | 3.12+ | |
| 2eca4eb… | ragelink | 14 | |
| 2eca4eb… | ragelink | 15 | ## Required Software |
| 2eca4eb… | ragelink | 16 | |
| 2eca4eb… | ragelink | 17 | ### Docker & Docker Compose |
| 2eca4eb… | ragelink | 18 | |
| 2eca4eb… | ragelink | 19 | Fossilrepo runs its infrastructure stack via Docker Compose. |
| 2eca4eb… | ragelink | 20 | |
| 2eca4eb… | ragelink | 21 | === "Ubuntu/Debian" |
| 2eca4eb… | ragelink | 22 | |
| 2eca4eb… | ragelink | 23 | ```bash |
| 2eca4eb… | ragelink | 24 | # Install Docker |
| 2eca4eb… | ragelink | 25 | curl -fsSL https://get.docker.com | sh |
| 2eca4eb… | ragelink | 26 | sudo usermod -aG docker $USER |
| 2eca4eb… | ragelink | 27 | |
| 2eca4eb… | ragelink | 28 | # Verify |
| 2eca4eb… | ragelink | 29 | docker compose version |
| 2eca4eb… | ragelink | 30 | ``` |
| 2eca4eb… | ragelink | 31 | |
| 2eca4eb… | ragelink | 32 | === "macOS" |
| 2eca4eb… | ragelink | 33 | |
| 2eca4eb… | ragelink | 34 | ```bash |
| 2eca4eb… | ragelink | 35 | # Install Docker Desktop |
| 2eca4eb… | ragelink | 36 | brew install --cask docker |
| 2eca4eb… | ragelink | 37 | |
| 2eca4eb… | ragelink | 38 | # Verify |
| 2eca4eb… | ragelink | 39 | docker compose version |
| 2eca4eb… | ragelink | 40 | ``` |
| 2eca4eb… | ragelink | 41 | |
| 2eca4eb… | ragelink | 42 | ### Git |
| 2eca4eb… | ragelink | 43 | |
| 2eca4eb… | ragelink | 44 | Required for the sync bridge (mirroring to GitHub/GitLab). |
| 2eca4eb… | ragelink | 45 | |
| 2eca4eb… | ragelink | 46 | ```bash |
| 2eca4eb… | ragelink | 47 | git --version # 2.30+ |
| 2eca4eb… | ragelink | 48 | ``` |
| 2eca4eb… | ragelink | 49 | |
| 2eca4eb… | ragelink | 50 | ### Make |
| 2eca4eb… | ragelink | 51 | |
| 2eca4eb… | ragelink | 52 | Used for running common commands. |
| 2eca4eb… | ragelink | 53 | |
| 2eca4eb… | ragelink | 54 | ```bash |
| 2eca4eb… | ragelink | 55 | make --version |
| 2eca4eb… | ragelink | 56 | ``` |
| 2eca4eb… | ragelink | 57 | |
| 2eca4eb… | ragelink | 58 | ## Optional: S3-Compatible Storage |
| 2eca4eb… | ragelink | 59 | |
| 2eca4eb… | ragelink | 60 | For continuous backups via Litestream, you need an S3-compatible bucket: |
| 2eca4eb… | ragelink | 61 | |
| 2eca4eb… | ragelink | 62 | - **AWS S3** |
| 2eca4eb… | ragelink | 63 | - **MinIO** (self-hosted) |
| 2eca4eb… | ragelink | 64 | - **Backblaze B2** |
| 2eca4eb… | ragelink | 65 | - **DigitalOcean Spaces** |
| 2eca4eb… | ragelink | 66 | |
| 2eca4eb… | ragelink | 67 | !!! info "Local development" |
| 2eca4eb… | ragelink | 68 | S3 is not required for local development. Litestream is disabled by default in the dev Docker Compose configuration. |
| 2eca4eb… | ragelink | 69 | |
| 2eca4eb… | ragelink | 70 | ## Ports |
| 2eca4eb… | ragelink | 71 | |
| 2eca4eb… | ragelink | 72 | The following ports are used by the stack: |
| 2eca4eb… | ragelink | 73 | |
| 2eca4eb… | ragelink | 74 | | Port | Service | |
| 2eca4eb… | ragelink | 75 | |---|---| |
| 2eca4eb… | ragelink | 76 | | `8000` | Django (management UI) | |
| 2eca4eb… | ragelink | 77 | | `443` | Caddy (HTTPS, production) | |
| 2eca4eb… | ragelink | 78 | | `80` | Caddy (HTTP redirect, production) | |
| 2eca4eb… | ragelink | 79 | | `5432` | PostgreSQL | |
| 2eca4eb… | ragelink | 80 | | `6379` | Redis | |
| 2eca4eb… | ragelink | 81 | | `8025` | Mailpit (dev only) | |