NATVPS.id – Mengelola keuangan merupakan hal yang cukup merepotkan bagi sebagian orang. Terlebih lagi jika mempunyai lebih dari satu sumber dana yang juga ikut dikelola. Untungnya, terdapat beberapa aplikasi yang dapat membantu kita untuk melakukan rekap pemasukan/pengeluaran. Salah satunya adalah Firefly III, sebuah finance manager yang gratis serta open-source.
Pada artikel ini kita akan membahas mengenai langkah-langkah instalasi Firefly III di NAT VPS, beserta konfigurasi NGINX untuk reverse-proxy. Artikel ini menggunakan Ubuntu 22.04 sebagai acuan, namun Anda dapat menggunakan distribusi lain seperti Debian dan CentOS. Pastikan OS yang digunakan mendukung Docker.
Mengingat kita menggunakan NAT, kita perlu menambahkan 2 konfigurasi port forwarding pada panel Virtualizor (atau panel VPS lain sesuai provider), yaitu port forwarding HTTP dan HTTPS untuk domain Firefly III.
Sebagai contoh, pada artikel ini akan menggunakan domain budget-tutorial.mdinata.my.id untuk mengakses Firefly III. Anda bebas mengganti domain sesuai pilihan Anda. Catat port dan domain ini, karena kita akan menggunakannya lagi pada proses deploy.
Jangan lupa untuk menambahkan DNS record yang menuju ke IP publik NAT VPS Anda, seperti ini:
Kita akan menggunakan Docker dan Docker Compose untuk men-deploy Firefly III.
Pertama, Install curl menggunakan perintah:
apt update && apt install curl -y
Kemudian, jalankan script instalasi otomatis dari Docker dengan memasukkan:
curl -fsSL get.docker.com | sh
Tunggu hingga proses instalasi selesai.
Buat direktori baru dengan nama firefly_iii
cd ~/ mkdir firefly_iii cd firefly_iii
Unduh konfigurasi Docker Compose dari repositori Firefly III:
wget https://raw.githubusercontent.com/firefly-iii/docker/main/docker-compose.yml
Unduh juga konfigurasi Firefly III dan database-nya:
wget https://raw.githubusercontent.com/firefly-iii/firefly-iii/main/.env.example -O .env wget https://raw.githubusercontent.com/firefly-iii/docker/main/database.env -O .db.env
Sebelum mengubah konfigurasi, kita perlu membuat sebuah token acak dengan panjang 32 karakter. Token ini akan digunakan oleh Firefly III untuk berkomunikasi antar container.
tr -dc 'A-Za-z0-9' </dev/urandom | head -c 32 && echo
Salin kode ini, kita akan menggunakannya setelah ini.
Edit file docker-compose.yml menggunakan nano:
apt install nano -y nano docker-compose.yaml
Pada bagian ports (container pertama), ganti 80 menjadi 8080 untuk menghindari konflik dengan port NGINX.
ports: - 8080:8080
Kemudian, pada container cron, ganti PLEASE_REPLACE_WITH_32_CHAR_CODEdengan token yang sudah di generate tadi.
| echo \"0 3 * * * wget -qO- http://app:8080/api/v1/cron/<token anda tadi>;echo\"
Simpan file tersebut dengan menekan Ctrl-X, y, kemudian Enter.
Lanjut ke konfigurasi Firefly III, buka file .env :
nano .env
Ganti SITE_OWNER dengan Email Anda:
# This should be your email address. # If you use Docker or similar, you can set this variable from a file by using SITE_OWNER_FILE # The variable is used in some errors shown to users who aren't admin. SITE_OWNER=emailanda@gmail.com
Pada bagian APP_KEY, ganti dengan token Anda sebelumnya:
# The encryption key for your sessions. Keep this very secure. # Change it to a string of exactly 32 chars or use something like `php artisan key:generate` to generate it. # If you use Docker or similar, you can set this variable from a file by using APP_KEY_FILE # # Avoid the "#" character in your APP_KEY, it may break things. # APP_KEY=<token Anda>
Pada TZ, ganti dengan Asia/Jakarta
# Change this value to your preferred time zone. # Example: Europe/Amsterdam # For a list of supported time zones, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones TZ=Asia/Jakarta
Di bagian TRUSTED_PROXIES=, isi dengan **:
# TRUSTED_PROXIES is a useful variable when using Docker and/or a reverse proxy. # Set it to ** and reverse proxies work just fine. TRUSTED_PROXIES=**
Terakhir, pada bagian APP_URL (biasanya terletak di paling bawah), ganti dengan https://<domain Anda>. Contoh:
# # Please make sure this URL matches the external URL of your Firefly III installation. # It is used to validate specific requests and to generate URLs in emails. # APP_URL=https://budget-tutorial.mdinata.my.id
Simpan file tersebut dengan menekan Ctrl-X, y, kemudian Enter.
Untuk file
.db.env, biarkan saja karena kita menggunakan konfigurasi bawaan yang sudah cukup lengkap.
Jalankan Firefly III menggunakan Docker Compose:
docker compose up -d
Tunggu hingga proses deploy selesai.
Agar kita dapat mengakses URL melalui domain seperti budget-tutorial.mdinata.my.id, kita dapat menggunakan reverse proxy seperti NGINX.
Pertama, install NGINX melalui perintah:
# Hapus Apache2 dan pendukungnya (biasanya terpasang secara bawaan di VPS OpenVZ) apt purge apache2* -y # Install NGINX apt install nginx -y
Buat konfigurasi host baru khusus untuk Firefly III:
nano /etc/nginx/sites-available/firefly_iii
Kemudian tempelkan konfigurasi berikut:
# Konfigurasi NGINX untuk deploy Firefly III di NAT VPS
# https://natvps.id/install-firefly-iii-nat-vps
server {
server_name budget-tutorial.mdinata.my.id;
listen 80;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:8080;
}
} Sesuaikan budget-tutorial.mdinata.my.id dengan domain Firefly III Anda.
Aktifkan konfigurasi tersebut dengan:
ln -sf /etc/nginx/sites-available/firefly_iii /etc/nginx/sites-enabled/firefly_iii # Restart NGINX systemctl restart nginx
Agar domain kita dapat diakses melalui HTTPS, kita perlu membuat sertifikat SSL. Kita dapat menggunakan sertifikat SSL gratis dari Let’s Encrypt melalui Certbot.
Install Certbot dan plugin NGINX nya menggunakan perintah:
apt install python3-certbot python3-certbot-nginx
Lalu, generate sertifikat melalui Certbot dengan perintah
certbot --nginx -d budget-tutorial.mdinata.my.id
Ganti budget-tutorial.mdinata.my.id dengan domain Anda.
Selamat! Domain Anda saat ini dapat diakses melalui koneksi aman HTTPS.
Firefly III dapat diakses melalui domain Anda sebelumnya. Contoh: https://budget-tutorial.mdinata.my.id.
Silahkan melakukan konfigurasi lanjutan dan mengisi data keuangan sesuai keperluan Anda.
Demikianlah artikel ini mengenai langkah-langkah deploy Firefly III di NAT VPS. Jika bingung atau ragu, jangan sungkan untuk bertanya di grup Telegram @IPv6Indonesia. Terima kasih!
NATVPS.id – Gopeed (Go Speed) adalah aplikasi pengunduh modern bersifat open-source yang yang mendukung berbagai…
NATVPS.id – IPTV (Internet Protocol Television) adalah teknologi yang menyiarkan konten televisi, video, dan siaran…
NATVPS.id – Jellyfin adalah server media open-source yang memungkinkan Anda mengatur, melakukan streaming, dan mengelola…
NATVPS.id – Gitea adalah sebuah layanan hosting Git (pengelola repositori kode) open-source yang dapat di…
NATVPS.id – LibreOffice adalah perangkat lunak perkantoran (office) yang gratis, modern, dan open-source. LibreOffice dapat…
NATVPS.id – Pi-hole adalah software DNS Server yang berfokus pada pemblokiran iklan dan situs trackers.…