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)

Mencoba “Menyelami” Digital Ocean

DigitalOcean
DigitalOcean

Digital Ocean adalah salah satu layanan komputasi awan yang bisa kita gunakan sebagai virtual private server untuk mengerjakan project-project berbasis web. Keunggulan yang selalu diiklankan besar-besar dimana-mana adalah penggunaan feature SSD di server-server yang digunakan. SSD adalah kependekan dari Solid State Drive, yaitu media penyimpanan seperti Harddisk yang tidak menggunakan piringan seperti HDD. SSD menggunakan chip-chip seperti flashdisk sebagai pengganti piringan sehingga kecepatan akses datanya juga jauh lebih cepat.

Proses setup sangat cepat dan mudah, sesuai dengan yang digembar-gemborkan oleh Digital Ocean dalam video iklannya. Dengan beberapa detik dan langkah, server kita sudah online dengan pilihan sistem operasi yang kita pilih saat setup.

Kesan pertama yang saya dapat adalah kemudahan. Begitu mudahnya mebangun server sendiri tanpa memikirkan infrastruktur fisiknya. Bagi orang yang sudah terbiasa membangun infrastruktur web server akan merasakan mudahnya membuat server virtual untuk menjalankan aplikasi web yang dibangunnya menggunakan layanan dari Digital Ocean ini.

Kalau dari konsep layanan dalam komputasi awan, layanan digital ocean ini sepertinya mencakup semua jenis layanan komputasi awan. Mulai dari IaaS (Infrastrukture as a Service), PaaS (Platform as a Service), hingga SaaS (Software as a Service). Kita mengeluarkan uang sesuai dengan service yang kita gunakan. Hitungannya berdasarkan waktu dan infrastrukture yang kita gunakan. Kita juga bebas membangun server virtual ini menggunakan pilihan Sistem Operasi yang kita inginkan.

Ketika server virtual yang kita bangun sudah jadi (benar-benar sesuai jargonnya yang hanya membutuhkan waktu 55 detik untuk setup server virtual yang baru), kita akan mendapatkan alamat IP address public yang bisa kita gunakan untuk mengaksesnya baik lewat protokol ftp ataupun ssh. Kita benar-benar diberikan server kosongan yang bisa kita install dengan aplikasi-aplikasi server yang kita inginkan.

Sistem reward yang ditawarkan membuat saya teringat dengan sistem reward dari Dropbox. Setiap user yang daftar melalui referensi kita, maka penyedia layanan akan memberikan diskon kepada kita. Begitu juga dengan sistem reward Digital Ocean ini. Bagi yang ingin mencopa menggunakan layanan Digital Ocean, silahkan mendaftar dari referensi saya ini ya… 🙂 https://www.digitalocean.com/?refcode=4af8d92f7403

Semoga makin Semangat dan Produktif dalam berkarya … ! 🙂

 

Install Web Server di Ubuntu 12.04 LTS

Ubuntu
Ubuntu

Saya tuliskan beberapa catatan saat instalasi web server menggunakan Ubuntu 12.04. Saya tuliskan disini biar nanti kalau butuh gak nyari-nyari lagi.

Saya menggunakan versi desktop karena kebetulan server ini juga rencananya akan saya pakai untuk kegiatan komputasi sehari-hari dan kebutuhan server untuk web ini hanya untuk sementara semasa pengembangan saja.

  1. Installasi Ubuntu Desktop 12.04 LTS
    Installasi ubuntu seperti biasanya, dalam kasus ini, saya menggunakan USB FDD. Pada awalnya ada sedikit masalah karena tidak BIOS tidak mau booting dari USB FDD padahal first boot sudah diatur ke USB FDD. Tapi akhirnya bisa booting setelah Hard Disk priority-nya diubah ke USB-FDD. Agar bisa dipilih dalam prioritas Hard Disk di BIOS, USB berarti harus sudah diposisinya sebelum masuk ke BIOS.
  2. Ubah repository Ubuntu 12.04 ke lokal
    Dalam hal ini, karena saya ingin berhemat dengan bandwidth international yang ada, maka saya ubah repository default ke repository dalam negeri, yaitu repository Kambing UI dan FTP ITB. Selain menghemat bandwidth internasional juga lebih cepat dalam aksesnya.

    sudo gedit /etc/apt/sources.list

    ganti dengan berikut

    ## ITB
    deb ftp://ftp.itb.ac.id/pub/ubuntu/ precise-proposed main restricted universe multiverse
    deb ftp://ftp.itb.ac.id/pub/ubuntu/ precise-security main restricted universe multiverse
    deb ftp://ftp.itb.ac.id/pub/ubuntu/ precise-updates main restricted universe multiverse
    deb ftp://ftp.itb.ac.id/pub/ubuntu/ precise main restricted universe multiverse
    
    # Kambing
    deb http://kambing.ui.ac.id/ubuntu/ precise-proposed main restricted universe multiverse
    deb http://kambing.ui.ac.id/ubuntu/ precise-security main restricted universe multiverse
    deb http://kambing.ui.ac.id/ubuntu/ precise-updates main restricted universe multiverse
    deb http://kambing.ui.ac.id/ubuntu/ precise main restricted universe multiverse

    Simpan kemudian

    sudo apt-get update

    biar ubuntunya tau kemana harus nyari aplikasi.

  3. Installasi LAMP (Linux-Apache-MySQL-PHP) Server
    Untuk bagian yang paling penting dalam web server ini saya pakai tasksel, suatau tools untuk menginstall satu paket lamp, biar gampang.

    sudo apt-get install tasksel

    setelah selesai

    sudo tasksel

    karena saya mengalami sedikit masalah dengan installasi menggunakan GUI tasksel, akhirnya saya pakai command

    sudo apt-get install lamp-server
  4. Install phpmyadmin
    Sebenarnya bisa tanpa phpmyadmin tetapi butuh waktu untuk menyesuaikan diri pakai text command, jadi pakai phpmyadmin saja.

    sudo apt-get install phpmyadmin

    Setelah installasi selesai, tinggal tambahkan phpmyadmin kedalam konfiguarsi apache.

    sudo gedit /etc/apache2/apache2.conf

    Memasukkan phpmyadmin agar phpmyadmin bisa diakses dari browser.

    Include /etc/phpmyadmin/apache.conf

    Restart apache:

    sudo service apache2 restart
  5. Install ProFTPD
    Install

    sudo apt-get install proftpd

    Sedikit konfigurasi

    sudo nano /etc/proftpd/proftpd.conf

    Menentukan direktori pengguna agar di berada di direktori home masing-masing.

    # Use this to jail all users in their homes
     DefaultRoot                    ~

    Restart:

    sudo service proftpd restart
  6. Selesai

Informasi ini berupa garis besarnya saja yang saya rangkum dari berbagai sumber di internet. Terimakasih bagi semua yang telah berbagi ilmu pengetahuan. Semoga dengan niat yang ikhlas Lillahi Ta’ala bisa mendatangkan pahala untuk ilmu yang bermanfaat..aamiin…