Mulai

Dari nol hingga HTTPS.

Slash berjalan sendiri dengan Slashfile, atau bersama dengan panel SPMPlus. Kedua cara tersebut menggunakan proxy yang sama, dan Anda dapat berpindah dari satu cara ke cara lainnya nanti.

Persyaratan sistem

Persyaratan sistem
OSLinux 64-bit, kernel 4.18 atau lebih baru (disarankan 5.10 atau lebih baru)
Arsitekturx86_64, aarch64
x86_64 CPUBaseline x86-64. AVX, AVX2, dan AVX-512 tidak diperlukan; AES-NI dideteksi saat runtime dan sangat disarankan
CPU aarch64ARMv8-A. Crypto Extensions disarankan (Raspberry Pi 5, Graviton, dan Ampere memilikinya)
libcTidak diperlukan: Slash adalah biner musl statis
DockerDocker Engine 20.10 atau lebih baru dengan Compose v2
Nativesystemd 247 atau lebih baru: Debian 11/12, Ubuntu 22.04/24.04, RHEL/Rocky/Alma 9, Fedora 34+

Ukuran VM

Ukuran VM
Minimum Direkomendasikan Lalu lintas tinggi
vCPU124+
RAM512 MB2 GB4 GB+
Disk1 GBSSD 10 GBSSD 20 GB dengan log rotation
KapasitasSekitar 1.000 pengguna secara bersamaanSekitar 10.000 pengguna secara bersamaanPuluhan ribu permintaan per detik

Idle: Slash sekitar 28 MB, panel sekitar 24 MB. Setiap koneksi terbuka sekitar 45–60 KB.

Mulai cepat: Slash dengan Slashfile

Tidak ada panel. Tulis Slashfile, jalankan container, selesai. Kunci master dan token admin dibuat secara otomatis di direktori data.

Slashfile
email admin@example.com

example.com, www.example.com    proxy localhost:3000
blog.example.com                wordpress /var/www/blog
api.example.com                 laravel /var/www/api
docs.example.com                files /srv/docs
Docker
docker build -f docker/Dockerfile.proxy --target final -t slash .
docker run -d --name slash --network host --restart unless-stopped \
  -v "$PWD/Slashfile:/etc/slash/Slashfile:ro" \
  -v /var/www:/var/www:ro \
  -v slash-data:/data/proxy \
  slash
docker exec slash /slash reload     # after editing the Slashfile

Sebelum memuat ulang, periksa dan rapikan file:

slash check     # validate, with line numbers and suggestions for typos
slash fmt       # align the columns

PHP dengan php-fpm di container lain, yang path aplikasinya berbeda:

Slashfile
library.example.com    php /srv/library via library-php:9000
    fpm-root /var/www/html

Buat Slashfile

Isi satu situs dan dapatkan baris Slashfile-nya. Semuanya berjalan di browser Anda; tidak ada data yang dikirim.

Pisahkan dengan koma, misalnya example.com, www.example.com

Upstream seperti localhost:3000, folder seperti /var/www/site, atau URL untuk redirect

Mulai cepat: SPMPlus dengan Docker

Semua perintah dijalankan di server, di direktori docker repositori.

  1. 01Clone

    git clone https://kubeman.unej.ac.id/geohot/slash.git
    cd slash/docker
    
  2. 02Buat secret

    sudo diperlukan untuk menyerahkan file ke UID 10001, user di dalam container. Backup secrets/master.key: tanpanya, private key dan token DNS yang tersimpan tidak bisa didekripsi.

    sudo ./gen-secrets.sh      # secrets/master.key and secrets/admin.token
    
  3. 03Jalankan

    Kemudian baca token pengaturan satu kali dari log panel.

    docker compose up -d --build
    docker compose logs panel | grep -i "setup token" | tail -1
    
  4. 04Buka panelnya

    Panel hanya mendengarkan pada 127.0.0.1:8443. Jangkau melalui SSH tunnel dari komputer Anda, masukkan token pengaturan dan buat akun admin.

    ssh -L 8443:127.0.0.1:8443 user@server
    # then open http://localhost:8443
    
  5. 05Tambah host

    Hosts → Tambah host: domain, upstream (misalnya http://127.0.0.1:3000), preset, SSL, pratinjau, lalu simpan dan terapkan. Sertifikat terbit dalam hitungan detik setelah DNS mengarah ke server.

Disarankan untuk HTTP/3, buffer UDP yang lebih besar:

printf 'net.core.rmem_max = 7500000\nnet.core.wmem_max = 7500000\n' | sudo tee /etc/sysctl.d/90-spmplus.conf
sudo sysctl --system

Firewall

Buka tepat tiga port: 80/tcp, 443/tcp, dan 443/udp. Tanpa 443/udp browser kembali ke HTTP/2; tanpa 80/tcp challenge HTTP-01 Let’s Encrypt gagal. Biarkan 9180 (metrik) dan 8443 (panel) tetap tertutup.

Ubuntu, Debian (ufw)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 443/udp
Rocky, AlmaLinux, RHEL, Fedora (firewalld)
sudo firewall-cmd --permanent --add-service=http --add-service=https --add-port=443/udp
sudo firewall-cmd --reload

Di server cloud, izinkan juga tiga port yang sama di firewall penyedia.

Dokumentasi

Referensi lengkap ada di repositori. Dokumennya ditulis dalam bahasa Indonesia.

Let’s Go Fun and Rust!