piku
, terinspirasi oleh dokku
, memungkinkan Anda melakukan penerapan git push
ke server Anda sendiri, tidak peduli seberapa kecil servernya.
DIATAS;DR:
curl https://piku.github.io/get | sh
Ada juga metode instalasi lain yang tersedia, termasuk cloud-init
dan instalasi manual.
piku
dianggap STABIL . Ini dipelihara secara aktif, tetapi "aktif" di sini berarti rangkaian fitur sudah cukup selesai, sehingga hanya diperbarui ketika runtime bahasa baru ditambahkan atau bug yang dapat direproduksi muncul.
Saat ini memerlukan Python 3.7 atau lebih tinggi, karena meskipun 3.8+ sekarang menjadi versi dasar Python 3 di Ubuntu LTS 20.04 dan Debian 11 telah berpindah ke 3.9, tidak ada perbedaan substansial antara versi-versi tersebut.
Kami menginginkan cara seperti Heroku/CloudFoundry untuk menerapkan sesuatu pada beberapa papan ARM
, tetapi karena dokku
tidak berfungsi pada ARM
pada saat itu dan bahkan docker
terkadang bisa berlebihan, diperlukan solusi yang lebih sederhana.
piku
saat ini dapat menerapkan, mengelola, dan secara mandiri menskalakan beberapa aplikasi per host pada arsitektur ARM dan Intel, dan bekerja pada penyedia cloud mana pun (serta bare metal) yang dapat menjalankan Python, nginx
, dan uwsgi
.
piku
mendukung alur kerja seperti Heroku:
git
SSH remote yang menunjuk ke server piku
Anda dengan nama aplikasi sebagai nama repo: git remote add piku piku@yourserver:appname
.git push piku master
(atau jika Anda ingin mendorong cabang yang berbeda dari yang sekarang gunakan git push piku release-branch-name
).piku
menentukan runtime dan menginstal dependensi untuk aplikasi Anda (membangun apa pun yang diperlukan).virtualenv
.GOPATH
terpisah untuk setiap aplikasi.package.json
ke dalam node_modules
.pom.xml
atau build.gradle
.leiningen
atau Clojure CLI dan file deps.edn
.bundle install
permata Anda dalam folder yang terisolasi.Procfile
dan memulai pekerja terkait menggunakan uwsgi
sebagai manajer proses generik.release
yang dijalankan satu kali saat aplikasi di-deploy.config:set
) atau meningkatkan/menurunkan skala proses pekerja ( ps:scale
).nginx
ke dalam file ENV
. Anda juga dapat menerapkan situs statis gaya gh-pages
menggunakan tipe pekerja static
, dengan jalur root sebagai argumennya, dan menjalankan tugas release
untuk melakukan beberapa pemrosesan di server setelah git push
. piku
memiliki dukungan host virtual penuh - yaitu, Anda dapat meng-host beberapa aplikasi pada VPS yang sama dan menggunakan alias DNS untuk mengaksesnya melalui nama host yang berbeda.
piku
juga akan menyiapkan sertifikat pribadi atau mendapatkannya melalui Let's Encrypt untuk mengaktifkan SSL.
Jika Anda menggunakan LAN dan mengakses piku
dari klien macOS/iOS/Linux, Anda dapat mencoba menggunakan piku/avahi-aliases
untuk mengumumkan host berbeda untuk alamat IP yang sama melalui Avahi/mDNS/Bonjour.
Selain situs statis, piku
juga mendukung pemetaan langsung awalan URL tertentu ke jalur sistem file (untuk melayani aset statis) atau menyimpan cache respons back-end (untuk menghapus beban dari aplikasi).
Fitur-fitur ini dikonfigurasi dengan menetapkan nilai yang sesuai dalam file ENV
.
piku
dimaksudkan untuk bekerja di lingkungan seperti POSIX di mana Anda memiliki Python, nginx
, uwsgi
dan SSH: piku telah diterapkan di Linux, FreeBSD, Cygwin dan Subsistem Windows untuk Linux.
Sebagai dasar, ia memulai pengembangannya pada Raspberry Pi Model B 256MB asli, dan masih berjalan dengan andal di dalamnya.
Namun kegunaan utamanya adalah sebagai micro-PaaS untuk menjalankan aplikasi di server cloud dengan CPU Intel dan ARM, dengan Debian dan Ubuntu Linux sebagai platform target.
piku
saat ini mendukung aplikasi yang ditulis dengan Python, Node, Clojure, Java dan beberapa bahasa lain (seperti Go) yang sedang dikerjakan.
Namun sebagai aturan umum, jika dapat dipanggil dari shell, maka dapat dijalankan di dalam piku
.
git
, ssh
, uwsgi
, nginx
).