Ada satu fase yang hampir selalu dialami developer: punya laptop lama yang sebenarnya masih cukup kencang, tetapi sudah tidak nyaman dipakai sebagai mesin utama.
Awalnya saya punya ide yang cukup ambisius: menjadikan laptop Dell Inspiron 5502 sebagai server LLM lokal. Saya mencoba beberapa model melalui Ollama dan Open WebUI, berharap bisa memiliki asisten AI pribadi yang berjalan di rumah.
Masalahnya sederhana.
Laptop ini memiliki Intel Core i7-1165G7 dan RAM 16 GB, dan meskipun masih sangat layak untuk development, ternyata tidak ideal untuk menjalankan model AI berukuran besar secara responsif. Setelah beberapa kali eksperimen, saya menyadari bahwa hardware ini akan jauh lebih berguna jika dijadikan internal development server daripada dipaksa menjadi LLM box.
Keputusan itu mengubah arah proyek ini sepenuhnya.
Daripada mengejar sesuatu yang berat untuk hardware yang ada, saya memilih membangun infrastruktur kecil yang benar-benar saya gunakan setiap hari.
Kenapa Internal Development Server?
Sebagai developer, kebutuhan saya ternyata jauh lebih membosankan daripada menjalankan model AI.
Saya membutuhkan:
- Database yang selalu tersedia
- Object storage untuk upload file
- Redis untuk cache dan queue
- Deployment Docker yang mudah
- Akses remote yang aman
- Storage bersama untuk project dan backup
Semua kebutuhan itu sebenarnya bisa dijalankan dengan sangat baik oleh laptop lama yang dibiarkan menyala 24 jam.
Akhirnya saya memutuskan menggunakan Ubuntu sebagai sistem operasi, Docker sebagai fondasi utama, dan Portainer sebagai dashboard deployment.
Hardware yang Digunakan
Spesifikasi yang saya gunakan cukup sederhana:
| Komponen | Spesifikasi |
|---|---|
| Laptop | Dell Inspiron 5502 |
| CPU | Intel Core i7-1165G7 |
| RAM | 16 GB |
| SSD Sistem | 1 TB |
| SSD Data | 512 GB |
SSD kedua saya dedikasikan sepenuhnya untuk data Docker, database, object storage, media, dan backup.
Arsitektur yang Saya Bangun
Setelah beberapa kali bongkar pasang, arsitektur akhirnya menjadi seperti ini:
Dell Inspiron 5502
│
├── Ubuntu (Headless)
├── Tailscale
├── Docker
├── Portainer
├── MariaDB
├── PostgreSQL
├── Redis
├── MinIO
├── Adminer
└── /srv (SSD 512 GB)
├── docker-data
├── mariadb
├── postgres
├── redis
├── minio
├── backups
├── media
└── projects
Semua service berjalan di Docker dan disimpan di SSD data, sehingga sistem operasi tetap bersih dan mudah dipelihara.
Kenapa Tidak Membuka Port ke Internet?
Salah satu keputusan terbaik yang saya ambil adalah menggunakan Tailscale.
Semua akses ke server dilakukan melalui jaringan pribadi Tailscale, sehingga saya tidak perlu membuka port router atau memasang reverse proxy publik.
Portainer, MariaDB, PostgreSQL, Redis, dan MinIO hanya dapat diakses dari perangkat yang sudah bergabung ke tailnet saya.
Pendekatan ini jauh lebih sederhana dan, untuk kebutuhan pribadi, juga jauh lebih aman.
Dari Laptop Menjadi Infrastruktur
Hal yang paling menarik dari proyek ini adalah perubahan cara berpikir.
Awalnya saya melihat laptop lama sebagai hardware yang hampir tidak terpakai.
Sekarang saya melihatnya sebagai infrastruktur.
Server ini menyimpan database project, menjadi target deployment Docker, menyimpan file upload, menjadi media backup, dan bisa diakses dari mana saja melalui Tailscale.
Semua itu berjalan di satu laptop yang sebelumnya hanya menjadi cadangan.
Apa yang Akan Dibahas Selanjutnya?
Artikel ini adalah bagian pertama dari seri Building My Internal Development Server.
Di artikel berikutnya saya akan membahas bagaimana saya memilih Ubuntu Desktop dibanding Ubuntu Server, lalu mengubahnya menjadi headless server tanpa harus reinstall sistem.
