# Noisepics - Noisebridge Community Photo Gallery ## What Self-hosted photo gallery for Noisebridge using Piwigo, served at `noisepics.extremist.software`, with 1TB Hetzner Storage Box for photo storage. ## Architecture ``` ┌─────────────────────────────┐ │ extremist-software VPS │ Internet ──► Caddy ─┤ │ │ Piwigo (OCI container :2284) │ │ MariaDB │ │ │ │ └────────┼──────────────────────┘ │ CIFS mount ┌────────▼──────────────────────┐ │ Hetzner Storage Box BX11 │ │ 1TB - €3.80/mo │ │ /galleries/ │ └───────────────────────────────┘ ``` ## TODO ### 1. Get storage - [x] Order Hetzner Storage Box BX11 (1TB, €3.80/mo) - [x] Note the address: `u563838.your-storagebox.de` - [x] Enable Samba/CIFS + external reachability - [ ] Create agenix secret with credentials (`username=u563838\npassword=...`) ### 2. Deploy the module - [ ] Add `noisepics` flake input to `extremist-software/flake.nix` - [ ] Add `inputs.noisepics.nixosModules.default` to the modules list - [ ] Create `modules/noisepics.nix` in extremist-software: ```nix { config, inputs, ... }: { services.noisepics = { enable = true; domain = "noisepics.extremist.software"; storagebox = { enable = true; address = "u563838.your-storagebox.de"; credentialsFile = config.age.secrets.noisepics-storagebox.path; }; }; age.secrets.noisepics-storagebox = { file = ../secrets/noisepics-storagebox.age; mode = "0400"; }; } ``` - [ ] Add DNS record: `noisepics.extremist.software` → VPS IP - [ ] Deploy with `nhs` ### 3. Import existing photos - [ ] Mount storage box locally via Samba and copy photos in - [ ] Use Piwigo's admin sync to pick them up - [ ] Import `photos/metadata.json` tags/descriptions via Piwigo API ### 4. Configure Piwigo - [ ] Complete web setup wizard (DB: `piwigo` on localhost socket) - [ ] Enable community uploads (Community plugin) - [ ] Set up guest browsing (no login to view) - [ ] Set Creative Commons licensing in gallery config ## Cost - Storage Box BX11: **€3.80/mo** - VPS: already running (extremist-software) - Total new cost: **€3.80/mo**