Konfigurasi lanjutan
Databasus bisa langsung berjalan dengan pengaturan default yang sesuai. Instalasi standar dengan satu container tidak membutuhkan konfigurasi apa pun. Semua variabel di halaman ini opsional dan tidak diperlukan pada 99% konfigurasi production
OAuth
Secara default, Databasus menggunakan email dan password untuk login. Kamu juga bisa mengizinkan pengguna login dengan akun Google atau GitHub. Tombol penyedia muncul begitu client ID diisi, tetapi login baru bisa diselesaikan jika keduanya, client ID dan client secret, sudah tersedia.
Saat mendaftarkan aplikasi OAuth, atur URL redirect (callback) ke https://<your-domain>/auth/callback. Karena redirect ini, login OAuth membutuhkan instance yang bisa diakses melalui HTTPS pada domain publik. Lihat catatan berikut.
HTTPS diperlukan untuk login dan email. Login OAuth dan email sama-sama membutuhkan instance yang bisa diakses melalui HTTPS pada domain publik. Penyedia OAuth mengarahkan browser kembali ke https://<your-domain>/auth/callback, dan tautan di email harus bisa dibuka oleh penerimanya. Instance yang hanya tersedia di localhost atau menggunakan HTTP biasa tidak bisa memakai fitur ini. Cara termudah mendapatkan HTTPS adalah melalui konfigurasi reverse proxy Caddy.
Buat client OAuth di Google Cloud Console (APIs & Services → Credentials → Create credentials → OAuth client ID, jenis aplikasi Web application), lalu tambahkan https://<your-domain>/auth/callback sebagai authorized redirect URI.
| Variabel | Deskripsi |
|---|---|
GOOGLE_CLIENT_ID | Client ID dari client Google OAuth kamu. Jika diisi, tombol "Sign in with Google" akan muncul. |
GOOGLE_CLIENT_SECRET | Client secret dari client Google OAuth kamu. Harus diisi bersama ID agar login berfungsi. |
GitHub
Buat aplikasi OAuth di GitHub Developer settings (Settings → Developer settings → OAuth Apps → New OAuth App), lalu atur authorization callback URL ke https://<your-domain>/auth/callback.
| Variabel | Deskripsi |
|---|---|
GITHUB_CLIENT_ID | Client ID dari aplikasi GitHub OAuth kamu. Jika diisi, tombol "Sign in with GitHub" akan muncul. |
GITHUB_CLIENT_SECRET | Client secret dari aplikasi GitHub OAuth kamu. Harus diisi bersama ID agar login berfungsi. |
Email (SMTP)
Hubungkan mail server agar Databasus bisa mengirim undangan ruang kerja, kode reset password, dan kode login. Mail server dianggap sudah dikonfigurasi begitu SMTP_HOST diisi. Tanpa variabel ini, layar pengaturan melaporkan mail server belum dikonfigurasi, dan layar login menyembunyikan tautan reset password.
Ini adalah mail server untuk instance. Kanal notifikasi email yang melaporkan peristiwa backup memiliki pengaturan SMTP sendiri pada formulir masing-masing. Jadi, keberhasilan kanal notifikasi mengirim email tidak menunjukkan bahwa server ini berfungsi. Untuk memeriksa mail server instance, buka Databasus settings → Mail server, lalu tekan Send test email. Pesan dikirim ke alamat kamu sendiri, dan jika gagal, respons mail server akan ditampilkan.
Jika relay kamu tidak menyediakan STARTTLS, atur SMTP_SECURITY=none sebelum upgrade. Pada semua port selain 465, mode default adalah starttls, yang tidak mau melanjutkan tanpa enkripsi. Relay semacam itu tidak akan menerima pesan sampai variabel tersebut diatur. Jika instance mewajibkan kode login dari email, tidak ada yang bisa login dengan password selama email tidak bisa dikirim. Untuk mendapatkan akses kembali, nonaktifkan faktor kedua dengan docker exec -it databasus ./main --disable-2fa (lihat Menonaktifkan kewajiban kode login).
| Variabel | Deskripsi |
|---|---|
SMTP_HOST | Nama host mail server (misalnya smtp.gmail.com). Mengisinya akan mengaktifkan email instance. |
SMTP_PORT | Port mail server (misalnya 587). Harus berupa bilangan bulat positif jika SMTP_HOST diisi. |
SMTP_SECURITY | Keamanan koneksi: tls, starttls, atau none, dijelaskan di bawah. Default-nya tls pada port 465 dan starttls pada port lainnya. Instance tidak akan berjalan jika nilainya selain itu. |
SMTP_USER | Username untuk autentikasi SMTP. |
SMTP_PASSWORD | Password untuk autentikasi SMTP. Untuk Gmail, gunakan App Password, bukan password akun kamu. |
SMTP_FROM | Alamat pengirim, bisa tanpa nama (noreply@example.com) atau dengan nama (Acme Backups <noreply@example.com>). Tanpa nama, penerima akan melihat Databasus. Jika tidak diisi, SMTP_USER digunakan jika berupa alamat email; jika bukan, digunakan noreply@ diikuti SMTP_HOST, sehingga username seperti apikey tidak pernah menjadi pengirim. Instance tidak akan berjalan jika nilainya tidak bisa dibaca sebagai alamat. |
SMTP_HELO_NAME | Nama yang digunakan instance saat menyapa mail server. Default-nya adalah host dari DATABASUS_URL, lalu nama host mesin jika tidak tersedia. Harus berupa nama host atau alamat literal seperti [192.0.2.1] atau [IPv6:2001:db8::1]; jika tidak, instance tidak akan berjalan. |
SMTP_INSECURE_SKIP_VERIFY | Atur ke true untuk melewati verifikasi sertifikat TLS pada mode tls dan starttls. Default-nya false. Gunakan hanya untuk server bersertifikat self-signed di jaringan tepercaya, karena pengaturan ini menonaktifkan perlindungan terhadap serangan man-in-the-middle. |
DATABASUS_URL | URL dasar publik instance kamu (misalnya https://backup.example.com). Opsional: menambahkan tautan ke email undangan dan menyediakan nama sapaan default. Email tetap berfungsi tanpanya. |
SMTP_SECURITY memilih satu dari tiga mode. Kanal notifikasi email menyediakan pilihan yang sama di Advanced settings.
| Mode | Perilaku |
|---|---|
tls | Koneksi dienkripsi sejak byte pertama. Umumnya pada port 465. |
starttls | Koneksi dimulai tanpa enkripsi, lalu ditingkatkan sebelum password atau pesan apa pun dikirim. Jika server tidak menyediakan peningkatan ini, pengiriman gagal alih-alih dilanjutkan tanpa enkripsi. Umumnya pada port 587. |
none | Koneksi tidak pernah dienkripsi. Gunakan untuk relay yang tidak menyediakan STARTTLS, seperti Postfix lokal pada port 25. |
none mengirim password SMTP dan semua pesan tanpa enkripsi. Siapa pun di antara Databasus dan relay bisa membacanya. Gunakan hanya untuk relay pada host yang sama atau di jaringan privat tepercaya.
Captcha pendaftaran (Cloudflare Turnstile)
Jika instance kamu bisa diakses dari internet publik, kamu bisa memasang tantangan Cloudflare Turnstile pada formulir pendaftaran dan login untuk menghalau bot. Kedua key berasal dari dashboard Turnstile, dan tantangan hanya aktif jika keduanya diisi.
Untuk menghentikan pendaftaran dari luar sepenuhnya, bukan sekadar memberi tantangan, kamu tidak membutuhkan captcha. Buka Databasus settings → Allow sign up di antarmuka, lalu nonaktifkan. Formulir pendaftaran akan ditutup sepenuhnya.
| Variabel | Deskripsi |
|---|---|
CLOUDFLARE_TURNSTILE_SITE_KEY | Site key publik Turnstile, digunakan untuk menampilkan widget di browser. |
CLOUDFLARE_TURNSTILE_SECRET_KEY | Secret key Turnstile, digunakan backend untuk memvalidasi respons tantangan. |
Izin penyimpanan Docker
Biasanya Databasus memilih ID numerik pengguna dan grup dari direktori pgdata yang sudah ada, lalu dari mount backup atau direktori root data, dan terakhir menggunakan 999. Atur PUID atau PGID hanya jika pilihan otomatis ini tidak sesuai dengan bind mount, CIFS share, atau NFS export kamu. Nilai harus berupa bilangan bulat basis 10 dari 1 sampai 4294967294.
| Variabel | Nilai otomatis | Akun |
|---|---|---|
PUID | Pemilik mount atau 999 | Pengguna databasus |
PGID | Grup mount atau 999 | Grup utama databasus |
Databasus dan PostgreSQL menggunakan akun sistem operasi non-root yang sama bernama databasus.
Entrypoint dimulai sebagai root di dalam container untuk memilih ID dan mencoba chown serta chmod. Setelah itu, siklus hidup file yang sebenarnya diperiksa sebagai databasus. Mount tetap bisa berfungsi meskipun menolak perubahan metadata. Override Docker user: sembarangan tidak didukung.
ERROR: Databasus cannot write to local storage paths /databasus-data/temp and /databasus-data/backups as UID 999 and GID 999.
Required operation: save a file through local storage.
Set PUID and PGID or fix the mounted directory permissions: https://databasus.com/advanced-config/#docker-storage-permissions
Details: permission deniedEmpat variabel identitas khusus layanan sebelumnya sengaja dihapus. Hapus variabel tersebut dari konfigurasi saat upgrade. Jika ID otomatis tidak bisa mengakses mount, startup berhenti dengan informasi operasi yang gagal dan tautan dokumentasi ini.
Telemetri
Secara default, Databasus mengirim telemetri penggunaan anonim yang tidak mengidentifikasi pengguna. Telemetri tidak berisi data pribadi dan membantu kami memahami penggunaan proyek. Rincian data yang dikumpulkan tersedia di kebijakan privasi, dan kamu bisa menonaktifkannya sepenuhnya.
| Variabel | Default | Deskripsi |
|---|---|---|
IS_DISABLE_ANONYMOUS_TELEMETRY | false | Atur ke true untuk menonaktifkan telemetri penggunaan anonim. |
Logging
Databasus menulis log ke stdout dan menyalinnya sebagai JSON ke databasus.log pada volume data. Atur OPEN_TELEMETRY_URL agar log juga diekspor melalui Open Telemetry ke backend seperti VictoriaLogs, Graylog, SigNoz, Grafana Loki, Datadog, atau Honeycomb, maupun ke OpenTelemetry Collector yang juga merupakan penerima OTLP.
- Transport mengikuti skema.
http://danhttps://mengirim OTLP/HTTP dan menggunakan URL apa adanya, termasuk path;grpc://dangrpcs://mengirim OTLP/gRPC dan hanya menggunakan host serta port. - Autentikasi dimasukkan ke
OPEN_TELEMETRY_HEADERSatau ke URL sebagaiuser:password@host. - Secret (password, token, kredensial) di dalam URL disamarkan sebelum catatan keluar dari proses.
- Catatan audit dikirim bersama log aplikasi dengan tag
log_type=auditdan mengabaikanLOG_LEVEL, sehingga menaikkan level tidak pernah menghilangkan jejak audit.
| Variabel | Default | Deskripsi |
|---|---|---|
OPEN_TELEMETRY_URL | - | URL endpoint OTLP lengkap, termasuk path. Biarkan kosong agar log tetap di container. Query string, host yang tidak ada, atau skema yang tidak dikenal akan menghentikan container saat startup, alih-alih mengekspor tanpa tujuan. |
OPEN_TELEMETRY_HEADERS | - | Pasangan key=value yang dipisahkan koma dan dikirim pada setiap ekspor, biasanya API key. Nilainya di-percent-decode, sesuai format standar OTEL_EXPORTER_OTLP_HEADERS. |
LOG_LEVEL | info | Salah satu dari debug, info, warn, atau error. Nilai yang tidak dikenal menggunakan info. |
LOG_FILE_IS_ENABLED | true | Menulis databasus.log bersama data lainnya, merotasi file pada 5 MB dan menyimpan 3 file lama. Atur ke false jika platform kamu sudah mengumpulkan stdout. |
Nilai untuk backend umum, masing-masing beserta header autentikasinya. Ganti host, region, dan key dengan milik kamu sendiri:
| Backend | OPEN_TELEMETRY_URL | OPEN_TELEMETRY_HEADERS |
|---|---|---|
| VictoriaLogs | http://victoria-logs:9428/insert/opentelemetry/v1/logs | Authorization=Basic%20dXNlcjpwYXNzd29yZA==: kredensial yang diharapkan vmauth atau reverse proxy kamu, karena VictoriaLogs sendiri tidak memiliki autentikasi pada path ingest. |
| OpenTelemetry Collector | grpc://otel-collector:4317 | Authorization=Bearer%20your-token: sesuai dengan extension bearertokenauth atau basicauth pada penerima. Collector yang hanya bisa diakses dari dalam jaringan biasanya tidak memerlukannya. |
| Graylog 6.2+ | grpc://graylog:4317 | Authorization=Bearer%20your-token: token yang diatur pada input OpenTelemetry (gRPC). Input ini juga bisa menggunakan mTLS sebagai gantinya. |
| SigNoz Cloud | grpcs://ingest.eu.signoz.cloud:443 | signoz-ingestion-key=your-ingestion-key |
| Grafana Cloud | https://otlp-gateway-prod-eu-west-0.grafana.net/otlp/v1/logs | Authorization=Basic%20<base64>: base64 dari instance-id:api-token |
| Honeycomb | https://api.honeycomb.io/v1/logs | x-honeycomb-team=your-api-key |
| Datadog Agent | grpc://datadog-agent:4317 | Tidak ada. Agent menyimpan API key dan meneruskan data untuk kamu. |
Nilai header di-percent-decode, sehingga spasi setelah Basic atau Bearer ditulis sebagai %20 dan koma di dalam nilai sebagai %2C. Basic auth juga bisa langsung dimasukkan ke URL sebagai https://user:password@host/path. Databasus mengubahnya menjadi header yang sama dan menyembunyikannya dari log. Melalui http:// dan grpc://, key dan password dikirim tanpa enkripsi, jadi gunakan https:// atau grpcs:// di luar jaringan tepercaya.
Script analitik
Databasus bisa menyisipkan snippet analitik atau pelacakan kamu sendiri, seperti Google Analytics, Plausible, Umami, dan sejenisnya, ke aplikasi. Jika ANALYTICS_SCRIPT diisi, nilainya disisipkan ke <head> halaman saat startup.
Peringatan keamanan: nilai ini disisipkan apa adanya sebagai HTML dan JavaScript mentah, lalu berjalan dengan akses penuh ke antarmuka Databasus di browser setiap pengunjung. Hanya isi dengan snippet yang sepenuhnya kamu kendalikan dan percayai.
| Variabel | Deskripsi |
|---|---|
ANALYTICS_SCRIPT | Markup <script> khusus yang disisipkan sebelum tag penutup </head>. Biarkan kosong jika tidak ingin menambahkan analitik. |