Cobalah - Dokumen - Discord - Hub - Panduan Kontributor
Windmill sepenuhnya bersumber terbuka (AGPLv3) dan Windmill Labs menawarkan instance khusus serta dukungan dan lisensi komersial.
Tentukan skrip minimal dan umum dengan Python, TypeScript, Go, atau Bash yang menyelesaikan tugas tertentu. Kode dapat ditentukan dalam IDE Web yang disediakan atau disinkronkan dengan repo GitHub Anda sendiri (misalnya melalui ekstensi VS Code):
Kami hanya menyediakan pengaturan penulisan buruh pelabuhan di sini. Untuk pengaturan lebih lanjut, seperti kompilasi dari sumber atau menggunakan tanpa pengguna super postgres, lihat dokumentasi Self-Host.
Kincir Angin dapat diterapkan menggunakan 3 file: (docker-compose.yml, Caddyfile, dan .env) dalam satu perintah.
Pastikan Docker dimulai, dan jalankan:
curl https://raw.githubusercontent.com/windmill-labs/windmill/main/docker-compose.yml -o docker-compose.yml
curl https://raw.githubusercontent.com/windmill-labs/windmill/main/Caddyfile -o Caddyfile
curl https://raw.githubusercontent.com/windmill-labs/windmill/main/.env -o .env
docker compose up -d
Kunjungi http://localhost dan voila :)
Pengguna super-admin default adalah: [email protected] / changeme.
Dari sana, Anda dapat mengikuti aplikasi penyiapan dan membuat pengguna lain.
Detail lebih lanjut di Dokumentasi Self-Host.
Kami menerbitkan bagan helm di: https://github.com/windmill-labs/windmill-helm-charts.
Setiap rilis menyertakan biner yang sesuai untuk x86_64. Anda cukup mengunduh biner windmill
terbaru menggunakan serangkaian perintah bash berikut.
BINARY_NAME= ' windmill-amd64 ' # or windmill-ee-amd64 for the enterprise edition
LATEST_RELEASE= $( curl -L -s -H ' Accept: application/json ' https://github.com/windmill-labs/windmill/releases/latest )
LATEST_VERSION= $( echo $LATEST_RELEASE | sed -e ' s/.*"tag_name":"([^"]*)".*/1/ ' )
ARTIFACT_URL= " https://github.com/windmill-labs/windmill/releases/download/ $LATEST_VERSION / $BINARY_NAME "
wget " $ARTIFACT_URL " -O windmill
Windmill Community Edition memungkinkan untuk mengonfigurasi OAuth, SSO (termasuk SSO Google Workspace, Microsoft/Azure, dan Okta) langsung dari UI di pengaturan superadmin. Perlu diperhatikan bahwa ada batasan 10 pengguna SSO pada edisi komunitas.
Lihat dokumentasi.
Untuk menghosting sendiri Windmill, Anda harus menghormati ketentuan lisensi AGPLv3 yang tidak perlu Anda khawatirkan untuk penggunaan pribadi. Untuk penggunaan bisnis, Anda akan baik-baik saja jika Anda tidak mengekspos kembali Windmill dengan cara apa pun kepada pengguna Anda dan merasa nyaman dengan AGPLv3.
Untuk mengekspos kembali bagian-bagian Kincir Angin kepada pengguna Anda sebagai fitur produk Anda, atau untuk membuat fitur di atas Kincir Angin, untuk mematuhi AGPLv3, produk Anda harus AGPLv3 atau Anda harus mendapatkan lisensi komersial. Hubungi kami di [email protected] jika Anda memiliki keraguan.
Selain itu, lisensi komersial memberi Anda insinyur khusus untuk mentransisikan infrastruktur Anda saat ini ke Windmill, dukungan dengan SLA yang ketat, dan sinkronisasi cache global kami untuk kehilangan cache kinerja tinggi/tanpa ketergantungan pada cluster dari 10+ node menjadi 200+ node.
Di Windmill, integrasi disebut sebagai sumber daya dan jenis sumber daya. Setiap Sumber Daya memiliki Tipe Sumber Daya yang menentukan skema yang perlu diterapkan oleh sumber daya.
Pada instans yang dihosting sendiri, Anda mungkin ingin mengimpor semua jenis sumber daya yang disetujui dari WindmillHub. Skrip pengaturan akan meminta Anda untuk menyinkronkannya secara otomatis setiap hari.
Nama Variabel Lingkungan | Bawaan | Keterangan | Server Api/Pekerja/Semua |
---|---|---|---|
DATABASE_URL | Url basis data Postgres. | Semua | |
PEKERJA_GROUP | bawaan | Kelompok pekerja tempat pekerja tersebut berada dan konfigurasinya diambil | Pekerja |
MODE | mandiri | Modusnya jika biner. Nilai yang mungkin: mandiri, pekerja, server, agen | Semua |
METRICS_ADDR | Tidak ada | (hanya ee) Alamat soket untuk mengekspos metrik Prometheus di jalur /metrics. Setel ke "true" untuk mengeksposnya pada port 8001 | Semua |
JSON_FMT | PALSU | Keluarkan log dalam format json, bukan logfmt | Semua |
BASE_URL | http://localhost:8000 | Url dasar yang diekspos secara publik untuk mengakses instance Anda. Ditimpa oleh pengaturan instance jika ada. | pelayan |
ZOMBIE_JOB_TIMEOUT | 30 | Batas waktu setelah suatu pekerjaan dianggap sebagai zombie jika pekerja tidak mengirimkan ping tentang pemrosesan pekerjaan tersebut (setiap server memeriksa pekerjaan zombie setiap 30 detik) | pelayan |
RESTART_ZOMBIE_JOBS | BENAR | Jika benar maka pekerjaan zombie dimulai ulang (di tempat dengan uuid yang sama dan beberapa log), jika salah maka pekerjaan zombie gagal | pelayan |
SLEEP_QUEUE | 50 | Jumlah ms yang harus ditidurkan di antara pemeriksaan terakhir untuk pekerjaan baru di DB. Ini dikalikan dengan NUM_WORKERS sehingga rata-rata, untuk satu instance pekerja, terdapat satu penarikan setiap SLEEP_QUEUE ms. | Pekerja |
KEEP_JOB_DIR | PALSU | Simpan direktori pekerjaan setelah pekerjaan selesai. Berguna untuk debugging. | Pekerja |
LICENSE_KEY (khusus EE) | Tidak ada | Kunci lisensi diperiksa saat startup untuk Kincir Angin Edisi Perusahaan | Pekerja |
SLACK_SIGNING_SECRET | Tidak ada | Rahasia penandatanganan aplikasi Slack Anda. Lihat dokumentasi Slack | pelayan |
COOKIE_DOMAIN | Tidak ada | Domain cookie. Jika tidak disetel, cookie akan disetel oleh browser berdasarkan asal lengkapnya | pelayan |
DENO_PATH | /usr/bin/deno | Jalur menuju deno biner. | Pekerja |
PYTHON_PATH | /usr/local/bin/python3 | Jalur ke biner python. | Pekerja |
GO_PATH | /usr/bin/pergi | Jalur menuju biner go. | Pekerja |
GOPRIVATE | Variabel env GOPRIVATE untuk menggunakan modul private go | Pekerja | |
GOPROXY | Variabel env GOPROXY yang akan digunakan | Pekerja | |
NETRC | Konten netrc untuk menggunakan registri go pribadi | Pekerja | |
JALUR | Tidak ada | Variabel lingkungan jalur, biasanya diwariskan | Pekerja |
RUMAH | Tidak ada | Direktori home yang digunakan untuk Go dan Bash, biasanya diwariskan | Pekerja |
DATABASE_CONNECTIONS | 50 (Server)/3 (Pekerja) | Jumlah maksimum koneksi di kumpulan koneksi database | Semua |
SUPERADMIN_SECRET | Tidak ada | Token yang memungkinkan penelepon bertindak sebagai superadmin virtual [email protected] | pelayan |
TIMEOUT_WAIT_RESULT | 20 | Jumlah detik untuk menunggu sebelum batas waktu pada titik akhir 'run_wait_result' | Pekerja |
ANTRIAN_LIMIT_WAIT_RESULT | Tidak ada | Jumlah pekerjaan maksimal dalam antrian sebelum segera menolak permintaan di titik akhir 'run_wait_result'. Diutamakan pada argumen kueri. Jika tidak ada yang ditentukan, tidak ada batasan. | Pekerja |
DENO_AUTH_TOKENS | Tidak ada | DENO_AUTH_TOKENS khusus untuk diteruskan ke pekerja guna mengizinkan penggunaan modul pribadi | Pekerja |
DISABLE_RESPONSE_LOGS | PALSU | Nonaktifkan log respons | pelayan |
CREATE_WORKSPACE_REQUIRE_SUPERADMIN | BENAR | Jika benar, hanya superadmin yang dapat membuat ruang kerja baru | pelayan |
Lihat file ./frontend/README_DEV.md untuk semua opsi yang berjalan.
Menggunakan Nix.
Ini akan menggunakan backend https://app.windmill.dev tetapi frontend Anda sendiri dengan hot-code reload. Perhatikan bahwa Anda harus menggunakan login nama pengguna/kata sandi karena pemeriksaan CSRF menggunakan penyedia autentikasi yang berbeda.
Di direktori frontend/
:
npm install
(atau pnpm install
atau yarn
) npm run generate-backend-client
## on mac use
npm run generate-backend-client-mac
npm run dev
http://localhost/
Lihat file ./frontend/README_DEV.md untuk semua opsi yang berjalan.
cargo install sqlx-cli
env DATABASE_URL=<YOUR_DATABASE_URL> sqlx migrate run
query!
makro/usr/bin/deno
dan /usr/local/bin/python3
frontend/
:npm install
, npm run generate-backend-client
lalu npm run dev
export NODE_OPTIONS="--max-old-space-size=4096"
npm run build
jika tidak, backend tidak akan menemukan folder frontend/build
dan tidak akan dikompilasi.sudo caddy run --config Caddyfile
backend/
: env DATABASE_URL=<DATABASE_URL_TO_YOUR_WINDMILL_DB> RUST_LOG=info cargo run
http://localhost/
Lab Kincir Angin, Inc 2023