Prodify adalah infrastruktur produksi lokal yang disiapkan menggunakan Docker Compose. Ini mencakup berbagai layanan penting seperti PostgreSQL, MongoDB, Minio, Camunda, Redis, dan Mailpit. Layanan ini dikonfigurasi dengan volume yang dipetakan ke folder penyimpanan proyek untuk data yang persisten.
- Docker
- Docker Compose
git clone https://github.com/ramaid/prodify.git
cd prodifySebelum melakukan step ini, pastikan kalian paham dulu terkait infrastructure, ya! Kalau tidak, gunakan konfigurasi default saja.
Buat file .env di direktori root proyek dan konfigurasikan variabel lingkungan berikut sesuai kebutuhan:
# PostgreSQL
PGPASSWORD=secreted
DB_USER=user
DB_PASSWORD=secret
DB_NAME=camunda
DB_PORT=5432
# MongoDB
MONGO_PORT=27017
# Minio
MINIO_USER=minioadmin
MINIO_PASSWORD=minioadmin
MINIO_PORT=9000
MINIO_CONSOLE_PORT=8900
# Camunda
CAMUNDA_PORT=8080
# Matomo
MATOMO_PORT=8081
# Mailpit
MAIL_SERVER_PORT=1025
MAIL_ADMIN_PORT=8025
# Metabase
METABASE_PORT=3000docker-compose up -dBuka halaman Camunda (default: localhost:8080) dan konfigurasikan Camunda menggunakan pengaturan berikut:
- User Account:
admin/adminatau value lainnya - User Profile:
Admin/Adminatau value lainnya
- Buka berkas BPMN di aplikasi Camunda Modeler
- Sesuaikan versinya jika belum sesuai
- Deploy BPMN ke Camunda Engine (default:
http://localhost:8080/engine-rest)
- Image: postgres:latest
- Port: 5432 (dapat dikonfigurasi)
- Volume:
./storage/postgres_data:/var/lib/postgresql/data- Skrip SQL di direktori
./pgsql/untuk inisialisasi database
- Healthcheck: Memastikan layanan PostgreSQL siap sebelum layanan yang bergantung memulai.
- Image: mongo:latest
- Port: 27017 (dapat dikonfigurasi)
- Volume:
./storage/mongo_data:/data/db
- Image: minio/minio:latest
- Port: 9000 (dapat dikonfigurasi), 8900 (console port, dapat dikonfigurasi)
- Perintah:
minio server /data/minio --console-address ":8900" - Volume:
./storage/minio_data:/data
- Image: rustfs/rustfs:latest
- Port:
- 9002 (S3 API, dapat dikonfigurasi)
- 9003 (Console, dapat dikonfigurasi)
- Volume:
./storage/rustfs_data:/data - Lingkungan:
RUSTFS_ADDRESS: Alamat listening server (default: :9002)RUSTFS_CONSOLE_ADDRESS: Alamat console server (default: :9003)RUSTFS_ACCESS_KEY: Access key untuk autentikasi (default: rustfsadmin)RUSTFS_SECRET_KEY: Secret key untuk autentikasi (default: rustfsadmin)RUSTFS_CONSOLE_ENABLE: Aktifkan console web (default: true)RUSTFS_SERVER_DOMAINS: Domain server (default: localhost)
RustFS adalah sistem penyimpanan objek terdistribusi yang 100% kompatibel dengan S3, ditulis dalam Rust. Ini merupakan alternatif berkinerja tinggi untuk MinIO dengan dukungan penuh S3 API.
⚠️ Catatan Keamanan: Kredensial default hanya untuk development. Untuk production, pastikan mengganti access key dan secret key dengan nilai yang kuat dan unik di file.env.
- Image: camunda/camunda-bpm-platform:7.21.0
- Port: 8080 (dapat dikonfigurasi)
- Bergantung pada: Layanan PostgreSQL
- Lingkungan:
DB_DRIVER: org.postgresql.DriverDB_URL: jdbc:postgresql://pgsql:5432/camundaDB_USERNAME: ${DB_USER}DB_PASSWORD: ${DB_PASSWORD}
- Volume:
camunda:/camunda./storage/camunda_data:/camunda/webapps/camunda-invoice
- Image: matomo:latest
- Port: 8081 (dapat dikonfigurasi)
- Lingkungan:
MATOMO_DATABASE_HOST: pgsqlMATOMO_DATABASE_ADAPTER: pgsqlMATOMO_DATABASE_USERNAME: ${DB_USER}MATOMO_DATABASE_PASSWORD: ${DB_PASSWORD}MATOMO_DATABASE_DBNAME: matomo
- Volume:
./storage/matomo_data:/var/www/html:z
- Image: redis:latest
- Port: 6379
- Volume:
./storage/redis_data:/data
- Image: axllent/mailpit:latest
- Port: 1025 (dapat dikonfigurasi), 8025 (dapat dikonfigurasi)
- Port Tambahan: ${MAIL_SERVER_PORT}, ${MAIL_ADMIN_PORT}
- Image: metabase/metabase:latest
- Port: 3000 (dapat dikonfigurasi)
- Port Tambahan: ${METABASE_PORT}
camunda: Volume lokal untuk data Camunda.
Untuk menghentikan dan menghapus semua container yang berjalan:
docker-compose down- PostgreSQL:
localhost:5432 - MongoDB:
localhost:27017 - Minio Console:
localhost:8900 - RustFS S3 API:
localhost:9002 - RustFS Console:
localhost:9003 - Camunda:
localhost:8080 - Matomo:
localhost:8081 - Redis:
localhost:6379 - Mailpit Admin:
localhost:8025 - Mailpit SMTP:
localhost:1025 - Metabase:
localhost:3000
Data untuk setiap layanan disimpan di direktori ./storage untuk memastikan persistensi di antara restart container.
Proyek ini dilisensikan di bawah Lisensi MIT.
Kontribusi sangat diterima! Silakan buka issue atau kirim pull request.
Untuk pertanyaan atau pertanyaan lebih lanjut, silakan hubungi Rama di [email protected].