Menyebarkan Aplikasi Catatan Seperti Twitter yang Dihosting Sendiri Dengan Docker

· 5 min read
Menyebarkan Aplikasi Catatan Seperti Twitter yang Dihosting Sendiri Dengan Docker
Photo by Omar Al-Ghosson / Unsplash

Pengenalan

Apakah Anda mencari cara yang lebih baik untuk membuat catatan? Bagaimana dengan sesuatu yang akrab dan efisien? Memos adalah aplikasi pencatatan seperti Twitter yang dapat digunakan dengan Docker dalam ~10 detik.

Baik Anda sedang rapat, dalam perjalanan, atau hanya mencoba mengingat sesuatu yang penting, Memos adalah solusi pencatatan yang sempurna untuk zaman modern. Jadi mengapa puas dengan aplikasi pencatatan lama yang membosankan ketika Anda dapat menggunakan Memos untuk melakukan pekerjaan dengan penuh gaya?

Memo memberi Anda perasaan pusat sosial/jejaring sosial karena Anda dapat menuliskan catatan Anda secara pribadi dan di depan umum. Ini terasa seperti memiliki alternatif yang dihosting sendiri untuk Twitter yang digunakan untuk catatan yang juga berfokus pada privasi.

Fitur inti dari Memos

Saya telah menggunakan Memos untuk beberapa waktu dan itu benar-benar berjalan jauh. Ketika saya mulai menggunakannya, itu memiliki beberapa keterbatasan dan bug yang membuatnya sedikit membuat frustrasi. Untungnya, para pengembang berusaha keras untuk meningkatkannya yang menghasilkan hasil yang mengesankan.

Sekarang, Memos sangat cepat, lebih intuitif, dan penuh dengan fitur-fitur berguna yang membuat membuat catatan jauh lebih mudah dan menyenangkan. Semuanya tampaknya telah dirancang untuk merampingkan alur kerja dan memaksimalkan produktivitas bagi pengguna.

Saya sangat senang dengan semua peningkatan saat ini yang telah diterapkan ke dalam Memos. Sudah jelas bahwa pengembang Memos ingin membuat produk berkualitas tinggi yang memenuhi kebutuhan pengguna mereka.

Fitur terpenting dari Memos:

  • 💎 Ini adalah Sumber Terbuka!
  • 🚀 Support for self-hosting with Docker in seconds
  • 📑 Mendukung penurunan harga
  • 📎 Bagikan catatan ke situs web lain (menggunakan iframe)
  • 📲 Aplikasi
  • 🔗 Bagikan memo melalui tautan atau gambar
  • ⛔️ Memo pribadi atau publik
  • 💻 RESTful API untuk menghubungkan aplikasi (seluler, desktop)
  • 🌗 Mode Terang dan Gelap
  • ️️️😲Tagar
  • 🔍 Cari untuk menemukan catatan dengan cepat
  • 📆 Tampilan kalender

Cara Memasang Memo Secara Lokal dengan Docker

Memo dapat diinstal secara lokal dengan Docker dengan menjalankan perintah Docker run atau menggunakan file Docker Compose.

Docker Berjalan:

docker run -d --name memos -p 5230:5230 -v ./memos/:/var/opt/memos neosmemo/memos:latest

Docker Compose:

version: "3.4"
services:
  memos:
    image: neosmemo/memos:latest
    container_name: memos
    volumes:
      - ./memos/:/var/opt/memos
    ports:
      - 5230:5230
💡
Catatan: Ubah port dan folder untuk memenuhi kebutuhan pribadi Anda.

Gunakan Traefik Untuk Menginstal Memo Dengan Docker Di Server Anda

Memo juga dapat digunakan di server untuk dapat diakses melalui internet. Di bagian ini, Anda akan belajar bagaimana mencapai ini dengan menggunakan proxy Traefik, domain, dan server yang menjalankan Docker atau Docker dalam mode Swarm.

Sebagai prasyarat, Anda harus mengatur server Anda yang menjalankan lingkungan Docker atau klaster server Anda yang menjalankan beberapa lingkungan Docker dalam mode Swarm. Selanjutnya, Anda perlu menginstal Traefik sebagai layanan yang akan melakukan manajemen sertifikat SSL otomatis dan penerusan URL untuk layanan Memo Anda.

Menyebarkan Memo di server dengan Docker

Jika Anda ingin menyebarkan Memos di server yang dapat dijangkau melalui internet dan menggunakan proxy Traefik untuk meneruskan permintaan, Anda harus terbiasa dengan Traefik dan Docker. Jika tidak, Anda dapat mempelajarinya dalam dua tutorial ini dari saya:

  1. Pengenalan ramah pemula untuk DevOps dengan Docker di Windows
  2. Cara Mengatur Traefik v2 dengan Automatic Let's Encrypt Certificate Resolver

Jika terbiasa dengan topik yang dijelaskan dalam tutorial, buat file docker-compose ini yang akan digunakan untuk menjalankan Memos pada satu server dengan Docker dan Traefik:

version: "3.4"
services:
  memos:
    image: neosmemo/memos:latest
    container_name: memos
    volumes:
      - data/:/var/opt/memos
    labels:
      - traefik.enable=true
      - traefik.docker.network=traefik-public
      - traefik.constraint-label=traefik-public
      - traefik.http.routers.memos-http.rule=Host(`${MEMOS_DOMAIN?Variable not set}`)
      - traefik.http.routers.memos-http.entrypoints=http
      - traefik.http.routers.memos-http.middlewares=https-redirect
      - traefik.http.routers.memos-https.rule=Host(`${MEMOS_DOMAIN?Variable not set}`)
      - traefik.http.routers.memos-https.entrypoints=https
      - traefik.http.routers.memos-https.tls=true
      - traefik.http.routers.memos-https.tls.certresolver=le
      - traefik.http.services.memos.loadbalancer.server.port=5230
  networks:
    - traefik-public

volumes:
  data:
networks:
  traefik-public:
    external: true

Penyesuaian:

1. Ekspor variabel lingkungan yang digunakan saat memulai layanan docker

export MEMOS_DOMAIN=memos.zhmmcloud.blog

Jalankan docker compose dengan perintah:

docker-compose up -d

Buka domain Anda (MEMOS_DOMAIN), buat pengguna admin awal, dan mulailah menggunakan aplikasi pencatatan seperti Twitter Memos!

Menyebarkan Memo dalam sebuah kluster (Docker dalam Docker Swarm Mode)

Jika Anda berpikir untuk menyebarkannya di klaster server, Anda dapat menggunakan Docker Swarm Mode. Saya telah menulis dua How-Tos sederhana tentang Docker dalam Swarm Mode yang akan menjelaskan cara membuat klaster Docker Swarm yang siap diproduksi:

Docker Swarm Secara Singkat
Tutorial sederhana ini menunjukkan bagaimana kluster kawanan docker yang sedang berjalan dapat dibuat dalam kurang lebih 15 menit. 1. Pengenalan Setiap kali Anda membaca “Docker Swarm” kita sebenarnya berbicara tentang “mode Docker Swarm”. (bukan produk Docker swarm yang sudah usang). 1.1 Mengapa Docker Swarm? Docker Swarm adalah alat yang
Menjelajahi Traefik: Reverse Proxy untuk Docker
Apa itu Traefik? Ini adalah reverse proxy yang dirancang untuk bekerja dengan Docker. Ini memungkinkan Anda untuk mem-proxy layanan dalam container dengan cara yang sangat sederhana dan deklaratif. Pada awalnya, Anda mungkin terintimidasi oleh label, tetapi Anda akan terbiasa. Mengapa Traefik dan bukan nginx, misalnya? Menurut kami Traefik lebih mudah

Jika Anda telah menyiapkan Docker Swarm Anda, gunakan file docker-compose ini untuk menyebarkan Memos di Docker Swarm menggunakan Traefik Proxy.

version: "3.4"
services:
  memos:
    image: neosmemo/memos:latest
    container_name: memos
    volumes:
      - data/:/var/opt/memos
    deploy:
      placement:
        constraints:
          - node.hostname == YOUR_NODE_HOSTNAME_HERE
      labels:
        - traefik.enable=true
        - traefik.docker.network=traefik-public
        - traefik.constraint-label=traefik-public
        - traefik.http.routers.memos-http.rule=Host(`${MEMOS_DOMAIN?Variable not set}`)
        - traefik.http.routers.memos-http.entrypoints=http
        - traefik.http.routers.memos-http.middlewares=https-redirect
        - traefik.http.routers.memos-https.rule=Host(`${MEMOS_DOMAIN?Variable not set}`)
        - traefik.http.routers.memos-https.entrypoints=https
        - traefik.http.routers.memos-https.tls=true
        - traefik.http.routers.memos-https.tls.certresolver=le
        - traefik.http.services.memos.loadbalancer.server.port=5230
  networks:
    - traefik-public

volumes:
  data:
networks:
  traefik-public:
    external: true

Penyesuaian:

  1. Ganti YOUR_NODE_HOSTNAME_HERE dengan Worker Node Hostname apa pun dari klaster Swarm Anda.
  2. Ekspor variabel lingkungan yang akan digunakan saat menyebarkan
export MEMOS_DOMAIN=memos.zhmmcloud.blog

Menyebarkannya(deployment ):

docker stack deploy -c docker-compose.memos-swarm.yml memos

Setelah beberapa detik instans Memos Anda akan berjalan dan Anda dapat mengaksesnya dengan membuka domain yang disediakan (MEMOS_DOMAIN). Buat pengguna dan masuk untuk mulai menggunakan Memos.

Alat pihak ketiga untuk Memo

Alat pihak ketiga sering menjadi pengubah permainan untuk aplikasi apa pun karena mereka terintegrasi secara mulus dengan produk dan memungkinkan penggunaan dalam kasus penggunaan yang berbeda.

Memo tidak terkecuali, karena memiliki RESTful API yang dapat digunakan oleh aplikasi yang berbeda.

Alat pihak ketiga berikut memperluas fungsionalitas Memos dengan menyediakan aplikasi untuk platform yang berbeda:

Catatan Penutup

Memos adalah perangkat lunak yang fantastis dengan banyak fitur sambil mempertahankan jejak kecil dan dapat diinstal dengan Docker dalam ~5 detik. Pengalaman seperti media sosial dan antarmukanya yang mudah membuatnya mudah digunakan dan saya menemukan diri saya tertarik padanya berkali-kali.

Juga, antarmuka pengguna web Memos dioptimalkan untuk perangkat seluler karena terlihat seperti dikembangkan terlebih dahulu. Selain itu, untuk pengguna Android dan iOS, bahkan ada aplikasi pihak ketiga yang tersedia. Tetapi, dengan kenyamanan membuat pintasan versi web di ponsel Anda, saya tidak merasa aplikasi pihak ketiga diperlukan.

Sekian dan Terimakasih