Home Page - Panduan Falcon Self-Hosting

Panduan ini memandu Anda dalam menyiapkan dan menerapkan Falcon milik Anda sendiri — mesin eksekusi kode langsung.

Prasyarat

  1. Server cloud (misalnya, droplet DigitalOcean atau VPS apa pun)
  2. Bahasa Inggris Python 3.11+
  3. Docker dan Docker Compose
  4. Bahasa Indonesia: Git
  5. Bahasa Inggris Nginx
  6. 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

  1. Kesalahan 403 atau 502: Periksa journalctl -u falcon -f dan nginx -t
  2. WebSocket tidak berfungsi: Pastikan uvicorn [standar] terinstal dan Nginx mendukung WebSockets.
  3. Kesalahan Docker dalam pengujian: Pastikan gambar runtime ditarik dengan benar.
Discard
Save

On this page

Review Changes ← Back to Content
Message Status Space Raised By Last update on