Panel untuk mengelola server rumah dengan Cloudflare Tunnel
- Clone repositori ini
- Jalankan
npm installdi direktori utama - Masuk ke direktori frontend dan jalankan
npm install - Buat file konfigurasi dan enkripsi file sensitif (lihat bagian Konfigurasi di bawah)
Sebelum menjalankan aplikasi, Anda perlu mengenkripsi file konfigurasi yang berisi informasi sensitif:
- Buat file
config/cloudflare-credentials.jsondengan struktur:
{
"authType": "global_key",
"email": "your_cloudflare_email@example.com",
"globalApiKey": "your_global_api_key",
"accountId": "your_account_id",
"savedAt": "timestamp"
}- Buat file
config/config.jsondengan struktur:
{
"server": {
"port": 9847,
"host": "0.0.0.0"
},
"session": {
"secret": "your_strong_session_secret_here",
"maxAge": 86400000
},
"cloudflare": {
"tunnelName": "your_tunnel_name",
"tunnelId": "your_tunnel_id",
"domain": "your_domain.example.com"
},
"defaultAdmin": {
"username": "your_admin_username",
"password": "your_secure_password"
}
}- Enkripsi file-file tersebut:
# Enkripsi credentials
openssl enc -aes-256-cbc -salt -in config/cloudflare-credentials.json -out config/cloudflare-credentials.json.enc -k "cfpanel_encryption_passphrase_2025"
# Enkripsi konfigurasi
openssl enc -aes-256-cbc -salt -in config/config.json -out config/config.json.enc -k "cfpanel_encryption_passphrase_2025"Untuk menjalankan aplikasi, Anda perlu mendekripsi file konfigurasi:
# Dekripsi credentials
openssl enc -aes-256-cbc -d -in config/cloudflare-credentials.json.enc -out config/cloudflare-credentials.json -k "cfpanel_encryption_passphrase_2025"
# Dekripsi konfigurasi
openssl enc -aes-256-cbc -d -in config/config.json.enc -out config/config.json -k "cfpanel_encryption_passphrase_2025"# Untuk backend
npm run dev:server
# Untuk frontend
npm run dev:client
# Atau untuk keduanya sekaligus
npm run dev:both# Bangun frontend
npm run build
# Jalankan aplikasi
npm start- Pastikan passphrase enkripsi tidak pernah diunggah ke repositori
- Gunakan credential yang kuat untuk akun admin
- Ganti session secret dengan nilai acak yang panjang
- Jangan gunakan default login admin di lingkungan produksi
MIT