# Deployment — Zammad > **Terakhir Diperbarui:** 2026-07-02 > **Status:** ✅ Installed 2026-07-02 — POC web live --- ## Prasyarat - [x] Server `10.100.1.24` — RAM/disk/sysctl siap - [x] Bucket OSS `zammad-attachments` - [x] PostgreSQL — **bundled PG 17** di Docker (eksternal `.25` ditunda: PG 12) - [x] DNS `zammad.gisportal.id` → IP publik (port 443) - [x] SSL wildcard `*.gisportal.id` di nginx - [x] Nginx vhost `/etc/nginx/conf.d/production/zammad.conf` --- ## Fase 1 — Install (ringkas) ### 1. Database PostgreSQL (10.100.1.25) ```bash ssh -m hmac-sha1 root@10.100.1.25 -p 22 # Buat user + database zammad (detail saat implementasi) ``` ### 2. Clone stack di 10.100.1.24 ```bash ssh -m hmac-sha1 root@10.100.1.24 -p 22 mkdir -p /opt/stacks/zammad cd /opt/stacks/zammad git clone https://github.com/zammad/zammad-docker-compose.git . cp .env.dist .env # Edit .env: POSTGRES_*, ZAMMAD_FQDN, nonaktifkan bundled PG jika pakai eksternal ``` > Gunakan skenario upstream Zammad untuk **PostgreSQL eksternal** dan **Elasticsearch** sesuai dokumentasi resmi. ### 3. S3 storage Salin `infra/zammad/storage.yml.example` → volume config Zammad, isi secret dari server. ### 4. Start stack ```bash docker compose up -d # Tunggu zammad-init selesai ``` ### 5. Nginx Deploy `infra/nginx/zammad.gisportal.id.conf` → `/etc/nginx/conf.d/production/` ```bash nginx -t && nginx -s reload ``` ### 6. Setup wizard Buka `https://zammad.gisportal.id` — admin pertama, LDAP, kategori tiket. --- ## Rollback 1. Snapshot VM Proxmox sebelum install, atau 2. `docker compose down` + hapus volume (data hilang) + restore DB backup --- ## Post-deploy checklist - [ ] Login LDAP user uji - [ ] Buat tiket + lampiran file → cek object di bucket OSS - [ ] API token untuk FE (`/api/v1/`) - [ ] Update `docs/project-status.md` + `perintah.md`