4.0 KiB
Build & Deploy CPONE Middleware — devcpone.aplikasi.web.id
Ringkasan
Build lokal commit 1ee0cfb (HEAD) dikirim dan di-deploy ke
one@devcpone.aplikasi.web.id, lalu service cpone-middleware.service
di-restart. Service aktif dan endpoint sudah diverifikasi.
Hasil Build
| Item | Nilai |
|---|---|
| Target build | ./cmd/server |
| Platform | linux/amd64 |
| Flags | CGO_ENABLED=0 -trimpath -ldflags="-s -w" |
| Ukuran binary | 7,159,992 bytes (statically linked, stripped) |
| SHA-256 | 0287e519926ba44c08df0d2a137930ae60028bfb49822139dd3e578864ab008e |
Test dan vet sebelum build:
go test ./... -> ok
go vet ./... -> ok
Konfigurasi Server
Build HEAD memakai arsitektur baru: database management (CPONE_DB_*)
plus registry koneksi per rumah sakit, menggantikan koneksi tunggal DB_*.
Karena itu .env server di-update.
| Kunci lama | Status | Keterangan |
|---|---|---|
DB_HOST/DB_PORT/DB_DATABASE/DB_USERNAME/DB_PASSWORD |
dihapus | Tidak dipakai build baru |
CPONE_DB_HOST/PORT/DATABASE/USERNAME/PASSWORD |
baru | Management DB lokal MySQL |
CPONE_BEARER_TOKEN |
tetap | MYmIZGwkLQUjmFHiL2kgrOjhUyZnk507oBD2BDwM |
CPONE_DATABASE_SETTINGS_TOKEN |
tidak diset | Fallback ke bearer token |
CPONE_DATABASE_CREDENTIAL_KEY |
tidak diset | Fallback ke bearer token |
Nilai management DB baru di /home/one/apps/.env:
| Kunci | Nilai |
|---|---|
CPONE_DB_HOST |
127.0.0.1 |
CPONE_DB_PORT |
3306 |
CPONE_DB_DATABASE |
cpone_middleware |
CPONE_DB_USERNAME |
admin |
CPONE_DB_PASSWORD |
Sasone!102938 |
Pada startup, service otomatis membuat database cpone_middleware beserta
tabel hospitals dan hospital_databases (user admin punya hak
CREATE DATABASE).
Setting Rumah Sakit
Disamakan dengan environment lokal developer. Di-seed lewat API
POST /api/cpone/database-settings setelah service jalan:
| Field | Nilai |
|---|---|
kode_rs |
AWALBROS_DEV |
nama |
RS Dev Awalbros |
host |
his.sismedika.online |
port |
3306 |
database |
rsabt201107 |
username |
remote |
Password HIS disimpan terenkripsi (AES-GCM) di tabel hospital_databases;
response API hanya menampilkan has_password.
Verifikasi
| Cek | Hasil |
|---|---|
GET /healthz |
{"success":true,"message":"ok","data":null} |
GET /api/cpone/hospitals |
Mengembalikan AWALBROS_DEV |
GET /api/cpone/layanan?page=1 + X-RS-Code |
Data HIS ter-load |
Tanpa X-RS-Code |
422 sesuai desain baru |
| Service state | active (running), MainPID stabil |
Cara Restart (tanpa sudo)
sudo systemctl restart cpone-middleware butuh password (hanya
apache2.service yang NOPASSWD). Service berjalan sebagai user one dan
memakai Restart=always, jadi restart dilakukan dengan kill pada PID
utama; systemd otomatis start ulang dengan binary baru:
kill $(systemctl show cpone-middleware.service -p MainPID --value)
Backup & Rollback
File cadangan di /home/one/apps/:
| File | Isi |
|---|---|
cpone-middleware.before-1ee0cfb |
Binary lama (commit 3e5cae4) |
.env.bak-20260828 |
.env lama (koneksi DB tunggal) |
Rollback:
cd /home/one/apps
cp -p cpone-middleware.before-1ee0cfb cpone-middleware
cp -p .env.bak-20260828 .env
kill $(systemctl show cpone-middleware.service -p MainPID --value)
Catatan Penting
Build baru WAJIB mengirim X-RS-Code (atau query ?kode_rs=) pada semua
endpoint bisnis. Controller PHP yang memanggil 127.0.0.1:8282/api/cpone
saat ini belum mengirim header tersebut, sehingga akan menerima 422 sampai
controller PHP di-update untuk mengirim X-RS-Code: AWALBROS_DEV.
Untuk production, sebaiknya set CPONE_DATABASE_SETTINGS_TOKEN dan
CPONE_DATABASE_CREDENTIAL_KEY dengan nilai berbeda dari bearer token,
serta pakai user MySQL khusus (bukan admin).
Documentation Updates Needed
docs/ (tidak ada perubahan perlu; repo tidak punya direktori docs)
Tidak ada file dokumentasi yang perlu diubah di repository ini.