Membuat Server Foto seperti Google Photos

Seminggu ini saya agak mengesampingkan project PLTS ataupun mikrokontroller saya. Perhatian saya tersita oleh riset dan eksperimen untuk mencari alternatif atau cara agar saya tidak ketergantungan dengan layanan google photos. Pasalnya, storage saya di google one, suatu layanan storage dari google berbayar, sudah mulai mendekati penuh.

Selama beberapa tahun ini, lupa dari sejak kapan, saya berlangganan google storage sebesar 100 GB. Penyimpanan ini termasuk untuk gmail, drive, dan google photos. Layanan ini sangat membantu saya yang memang seneng fotografi, mengabadikan momen, dan suka menata arsip digital terutama foto. Saya tidak perlu pusing kehilangan hasil jepretan karena secara otomatis foto-foto saya di-backup ke cloud oleh google photos, selain backup manual yang sering saya lakukan juga ketika HP penuh.

Saya lebih percaya hasil backup google photos daripada backup manual yang sudah saya lakukan. Backup manual sering kali menyebabkan redundancy dan juga kemungkinan foto yang ter-skip. Selain itu, kedisiplinan dalam membuat kerapihan pengarsipan foto digital kadang naik dan turun sehingga tidak konsisten.

Alternatif Solusi

Seminggu yang lalu, sejak tulisan ini dibuat, saya menemukan solusi open source sebagai alternatif dari Google Photos. Ada beberapa produk yang direkomendasikan oleh AI dan salah satunya bernama Immich. Sampai sekarang saya masih amazed dengan Immich, mirip sekali dengan Google Photos. Bagi orang yang sudah terbiasa pakai google photos, saya yakin akan mudah sekali menyukainya. Fitur-fitur seperti people face recognition, smart search, timeline, maps, dll, tersedia juga di immich. Hal ini tidak terlepas dari kemajuan teknologi machine learning yang juga disematkan di immich.

Setelah itu saya terbawa suasana hingga melakukan eksperimen penuh dengan immich. Awalnya saya coba di laptop untuk melakukan evaluasi dari fitur-fitur dan pengalaman pengguna. Cukup puas dengan eksperimen lokal di laptop, saya tingkatkan dengan eksperiman di lingkungan server, sehingga bisa terintegrasi juga dengan smartphone.

Menyiapkan Dukungan System

Sebelum menjalankan Immich, saya perlu menyiapkan lingkungan sistem dimana aplikasi ini berjalan. Saya sampai tiga kali install operating system untuk server untuk ujicoba mana yang paling optimal. Server yang saya gunakan adalah komputer tua berumur 10 tahun an dengan casing dari komputer yang memiliki usia 10 tahun lebih lama lagi. Instalasi pertama saya menggunakan antiX, sebuah distro linux berbasis debian. Awalnya saya pakai yang versi arsitektur 32-bit karena saya pakai pc tua dengan os bawaan windows 7 32-bit. Setelah saya install ternyata bermasalah dengan Docker yang tidak lagi mendukung os 32-bit.

Instalasi kedua saya menggunakan AntiX-core yang 64-bit. Distro linux ini sangat ringan sesuai dengan yang diiklankan. Tetapi kompensasinya docker daemon tidak otomatis jalan. Untuk bisa menjalankan docker, ada beberapa step yang harus dilakukan terlebih dahulu secara manual. Sehingga ketika komputer restart, docker tidak langsung berjalan. Otomasi sudah coba saya lakukan dan ternyata belum berhasil. Immich sempat berhasil berjalan, tetapi masih ada kekurangan sana-sini.

Yang terakhir, saya buat agak lebih mapan dan lebih teratur. Saya tambahkan HDD satu lagi yang saya khususkan hanya untuk menyimpan foto dan metadatanya. Sedangkan HDD yang satunya saya isi dengan sistem operasi. Pemisahan ini saya lakukan untuk membuat sistem ini lebih modular dan lebih mudah dalam perawatan. Selain itu, dari sisi software, saya mencoba menggunakan ubuntu server yang harapannya lebih stabil dan lebih mudah untuk menjalankan docker dan daemon-nya.

Perubahan menjadi dua HDD ini agak memakan waktu karena perlu melakukan beberapa hal di haardware dan juga software. Di hardware saya perlu memindah jeroan CPU dari casing awal yang hanya punya satu slot HDD ke casing CPU lain, sebuah casing lama saya yang kebetulan lama nganggur, yang punya slot HDD hingga 4 atau 5 slot. Sedangkan sisi software, saya perlu ekspansi partisi HDD yang tadinya saya pakai buat ujicoba sebelumnya dengan foto yang sudah terupload hingga 200 GB. Ekspansi partisi ini saya lakukan karena partisi OS sudah tidak diperlukan di HDD kedua. Masalahnya partisi OS ada di sebelah kiri, dan saya belum menemukan cara atau tool untuk expansi partisi HDD ke sebelah kiri. Akhirnya, HDD kedua ini saya hapus total partisinya dan memulai dari awal lagi.

Bersambung… (cerita migrasi foto)

CLI: Cek Kapasitas Harddisk di Linux

Cara cek kapasitas harddisk yang sedang terpakai atau yang masih tersisia:

# df -h

Command diatas akan menampilkan penggunaan HDD berdasarkan partisinya

Untuk mengetahui besar ukuran suatu folder, misalnya folder /home

# du -csh /home/

Ingin melihat ukuran masing-masing folder dibawah folder /home/ pakai command:

# du -csh /home/*

Memasang Squid Proxy di Ubuntu 12.04

Sejak jumat minggu lalu, saya dilanda penasaran dengan gagalnya squid3, yaitu web proxy yang tidak berjalan dengan semestinya di server yang baru saja saya install. Beberapa panduan sudah saya ikuti tetapi belum memberikan hasil yang memuaskan. Experimen ini saya lakukan untuk mencoba feature caching web oleh squid3 dan untuk mengatur dan memonitor informasi yang masuk ke dalam jaringan.

Saya coba membuat cache proxy di server tersendiri setelah sebelumnya saya coba web proxy internal yang merupakan fasilitas dari mikrotik. Di mikrotik sendiri awalnya tidak mau men-cache website yang sudah dibuka. Masalah yang saya hadapi terselesaikan setelah saya buat sendiri storage disk yang ada di system. Jadi storage disk yang digunakan tidak memakai storage disk default hasil dari enabling web-proxy mikrotik. Saya masih belum tahu penyebab pasti masalah tidak mau caching itu, tapi intinya setelah settingan storage disk nya dirubah jadi bisa nge-cache.

Yang jadi masalah berikutnya ketika bisa men-cache di internal system mikrotik adalah disk space system yang cepat penuh. Sudah spacenya kecil, cuma seratusan MB, ditambah caching yang cepat sekali bertambahnya, membuat saya beralih untuk membuat cache external.

Saya menggunakan konfigurasi yang dijelaskan dengan detail disni. Kira-kira konfigurasi seperti inilah yang saya pakai dan berhasil men-cache website yang telah dibuka. Dalam sehari ini kira-kira sudah ada 300M yang sudah berhasil di-cache.

Untuk kasus saya ini kebetulan topologinya kira-kira seperti ini:

Router——-Router——-Switch——client
|
Squid

Cara Agar Program Tetap Berjalan Walaupun Terminal Ditutup

Judulnya agak ambigu, hahaha 😀

Saya sedang menemui kasus dimana ketika sebuah program dijalankan menggunakan command di terminal, program akan ikut tertutup ketika terminal ditutup. Nah, gimana caranya agar program atau perintah yang kita berikan ke mesin tetap berjalan walaupun komunikasi menggunakan terminal ke mesin telah diputus.

Hal ini memang terlihat sepele jika kita membuka pada komputer yang ada dihadapan kita dan programnya tidak memakan waktu lama, tinggal buka lagi programnya. Masalah baru muncul ketika kita menjalankan program atau suatu operasi yang membutuhkan waktu lama dengan akses dari remote komputer. Tentu akan lebih optimal jika kita memberikan perintah ke komputer dari remote komputer dan bisa meninggalkan perintah atau operasi tetap berjalan walaupun remote komputer yang kita gunakan untuk memberi perintah telah dimatikan.

Setidaknya ada dua command yang saya gunakan yaitu:

$setsid <command>

dan

$<command> &

biasanya saya lebih sering menggunakan

$setsid <command>

dengan perintah tersebut, walaupun terminal ditutup, program atau operasi yang tengah berjalan tidak terhenti.

Cara Me-resize Banyak Foto Dalam Satu Folder di Ubuntu

Saya nemu imagemagick buat me-risize banyak foto atau gambar dalam satu folder di sini. Kalau di Windows kita bisa pakai Picture Manager, di Ubuntu kita bisa pakai tool ini. Saya tuliskan lagi disini biar nanti kalau butuh tidak mencari-cari lagi, karena kadang suka lupa pakai apa.

1. Install imagemagick

sudo apt-get install imagemagick

2.Masukkan semua foto yang akan di-resize ke dalam satu folder.

3. Masuk ke folder tersebut:

cd <directory-location>

4. Selanjutnya tinggal resize foto-foto tersebut menggunakan perintah yang dikenali tool tersebut. Dalam contoh ini, kita resize foto berformat .jpg menjadi 50% menggunakan perintah:

mogrify -resize 50% *.JPG

Kita juga bisa me-resize berdasarkan satuan ukuran resolusi:

mogrify -resize 800x600 *.JPG

Format perintah diatas akan menghasilkan foto dengan ukuran panjang 800px dan lebar 600px. Dokumentasi lengkap  di isini.