Home Page - Panduan Falcon Self-Hosting
Panduan ini memandu Anda dalam menyiapkan dan menerapkan Falcon milik Anda sendiri — mesin eksekusi kode langsung.
Prasyarat
- Server cloud (misalnya, droplet DigitalOcean atau VPS apa pun)
- Bahasa Inggris Python 3.11+
- Docker dan Docker Compose
- Bahasa Indonesia: Git
- Bahasa Inggris Nginx
- Sebuah domain
Kloning Repositori
git clone https://github.com/fossunited/falcon
cd falcon
Atau gunakan garpu Anda sendiri jika diperlukan.
Menyiapkan Lingkungan Python
python3 -m venv env
source env/bin/activate
pip install --upgrade pip
pip install -r dev-requirements.txt
Pastikan Anda juga menginstal uvicorn[standar] untuk dukungan WebSocket:
pip install 'uvicorn[standard]'
Tarik Gambar Docker
Falcon menggunakan kontainer Docker untuk eksekusi kode dalam mode sandbox. Ambil runtime dasar:
docker pull fossunited/falcon-python:3.9
docker pull fossunited/falcon-golang
docker pull fossunited/falcon-rust
docker pull bizopsdevs/falcon-javascript
Buat Layanan systemd
Buat file layanan di /etc/systemd/system/falcon.service:
[Unit]
Description=Falcon LiveCode Service
After=network.target
[Service]
User=root
WorkingDirectory=/root/falcon
ExecStart=/root/falcon/env/bin/uvicorn livecode_server.server:app --host 0.0.0.0 --port 8000
Restart=always
[Install]
WantedBy=multi-user.target
Kemudian muat ulang dan mulai layanan:
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable falcon
sudo systemctl start falcon
Periksa log:
journalctl -u falcon -f
Konfigurasi Nginx
Instal Nginx jika belum:
sudo apt update
sudo apt install nginx
Buat konfigurasi situs baru di bawah /etc/nginx/sites-available/falcon:
server {
listen 80;
server_name falcon.example.com;
location / {
proxy_pass http://localhost:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Aktifkan situs:
sudo ln -s /etc/nginx/sites-available/falcon /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
(Opsional) Siapkan HTTPS dengan Certbot:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx
Uji Pengaturan Anda
Di browser atau aplikasi frontend Anda, uji sesi:
Pertama tambahkan skrip di halaman
const script = document.createElement('script')
script.src = `https://falcon.bizops.io/static/livecode.js`
document.head.appendChild(script)
Kemudian jalankan sesi
const session = new LiveCodeSession({
base_url: "https://falcon.example.com",
runtime: "python",
code: "print('Hello')",
onMessage: console.log
});
Anda harus melihat:
{ msgtype: "welcome", message: "welcome to livecode" }
Penyelesaian Masalah
- Kesalahan 403 atau 502: Periksa journalctl -u falcon -f dan nginx -t
- WebSocket tidak berfungsi: Pastikan uvicorn [standar] terinstal dan Nginx mendukung WebSockets.
- Kesalahan Docker dalam pengujian: Pastikan gambar runtime ditarik dengan benar.