GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Wiki Basis Pengetahuan Garis Besar di Ubuntu menggunakan Docker

Outline adalah perangkat lunak berbasis pengetahuan sumber terbuka, kolaboratif. Anda dapat menggunakannya untuk menyimpan dokumentasi dan halaman penggemar atau bahkan menggunakannya untuk berbagi catatan. Ini termasuk editor penurunan harga dan terintegrasi dengan beberapa layanan seperti Slack, Figma, Airtable, Google Docs, Trello, Zapier, Codepen, Spotify, Youtube, dll. Ini memiliki fitur keamanan seperti grup pengguna dengan izin baca dan tulis terpisah, memungkinkan berbagi publik dan memiliki dukungan RTL dengan terjemahan dalam 13 bahasa. Itu dibangun menggunakan React dan Node.js. Ada dua cara menggunakan Outline. Salah satunya adalah versi cloud-host mereka, atau Anda dapat menghostingnya di server Anda.

Tutorial ini akan mengajarkan Anda cara menginstal Outline Wiki di server berbasis Ubuntu menggunakan Docker.

Prasyarat

  • Server yang menjalankan Ubuntu 20.04 dengan minimal 1GB RAM.

  • Pengguna non-root dengan hak istimewa sudo.

  • Nama domain yang menunjuk ke server. Kami akan menggunakan https://outline.example.com untuk tutorial kami.

  • Beberapa aplikasi penting untuk memulai.

    $ sudo apt install nano curl wget unzip gnupg

Langkah 1 - Konfigurasi Firewall

Langkah pertama adalah mengkonfigurasi firewall. Ubuntu hadir dengan ufw (Uncomplicated Firewall) secara default.

Periksa apakah firewall sedang berjalan.

$ sudo ufw status

Anda akan mendapatkan output berikut.

Status:tidak aktif

Izinkan port SSH agar firewall tidak memutus koneksi saat ini saat mengaktifkannya.

$ sudo ufw izinkan OpenSSH

Izinkan port HTTP dan HTTPS juga.

$ sudo ufw izinkan 80$ sudo ufw izinkan 443

Aktifkan Firewall.

$ sudo ufw enableCommand dapat mengganggu koneksi ssh yang ada. Lanjutkan dengan operasi (y|n)? yFirewall aktif dan diaktifkan pada startup sistem

Periksa kembali status firewall.

$ sudo ufw status

Anda akan melihat keluaran serupa.

Status:activeTo Action From-- ------ ----OpenSSH ALLOW Anywhere80 ALLOW Anywhere443 Izinkan AnywhereOpenSSH (v6) ALLOW Anywhere (v6)80 (v6) ALLOW Anywhere (v6)443 (v6) ALLOW Anywhere (v6)

Langkah 2 - Instal Docker

Kita perlu menginstal Docker menggunakan repositori resminya. Tambahkan kunci GPG resmi Docker.

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Tambahkan repositori Docker ke sistem.

$ echo \"deb [arch=$(dpkg --print-architecture) ditandatangani-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux /ubuntu \$(lsb_release -cs) stabil" | sudo tee /etc/apt/sources.list.d/docker.list> /dev/null

Perbarui daftar repositori APT dan instal Docker.

$ sudo apt update$ sudo apt install docker-ce

Verifikasi apakah mesin Docker dipasang dengan benar.

$ docker --versionDocker versi 20.10.14, build a224086

Jalankan perintah berikut sehingga Anda tidak perlu menggunakan sudo untuk menjalankan perintah Docker.

$ sudo usermod -aG docker ${USER}$ su - ${USER}

Langkah 3 - Instal Docker Compose

Jalankan perintah berikut untuk menginstal Docker compose. Docker Compose telah diperbarui ke v2.0 baru-baru ini, yang memperkenalkan banyak perubahan yang melanggar. Kami akan menggunakan versi 1.x terbaru yang tersedia dari halaman rilis Github.

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o / usr/local/bin/docker-compose

Terapkan izin yang dapat dieksekusi ke biner penulisan Docker.

$ sudo chmod +x /usr/local/bin/docker-compose

Verifikasi apakah Docker Compose diinstal dengan benar.

$ docker-compose --versiondocker-compose versi 1.29.2, build 5becea4c

Instal Penyelesaian perintah untuk penulisan Docker.

$ sudo curl \ -L https://raw.githubusercontent.com/docker/compose/1.29.2/contrib/completion/bash/docker-compose \ -o /etc/bash_completion.d/docker-compose$ sumber ~/.bashrc

Ini melengkapi bagian instalasi penulisan Docker dan Docker dari tutorial.

Langkah 4 - Buat File Lingkungan untuk Docker

Konfigurasikan Otentikasi Slack

Outline mengharuskan Anda mengonfigurasi penyedia autentikasi. Untuk tutorial kami, kami akan mengonfigurasi login berbasis Slack.

Masuk dengan akun Slack Anda dan kunjungi halaman Aplikasi API Slack.

Klik Buat Aplikasi tombol untuk melanjutkan. Klik Dari Awal tautan untuk membuat aplikasi.

Pilih nama untuk aplikasi Anda dan pilih ruang kerja tempat Anda ingin Aplikasi Anda muncul. Jika Anda tidak ingin mengaitkan aplikasi Anda dengan ruang kerja yang ada, Anda dapat membuat yang lain dan kembali ke langkah ini.

Klik Buat Aplikasi tombol setelah Anda selesai. Selanjutnya, gulir ke bawah ke bagian bawah halaman dan berikan deskripsi, ikon, dan warna latar belakang pada aplikasi Anda.

Klik Simpan Perubahan tombol setelah Anda selesai. Pilih OAuth dan Izin opsi dari bilah sisi kiri.

Tambahkan URL pengalihan https://outline.example.com/auth/slack.callback di kotak yang tersedia dan klik Tambah tombol.

Klik Simpan URL tombol untuk melanjutkan. Gulir ke bawah ke Cakupan Token Pengguna bagian halaman dan pilih cakupan berikut dari menu tarik-turun.

  • identity.avatar
  • identity.basic
  • identity.email
  • identity.team

Kembali ke Informasi Dasar halaman dari sidebar kiri. Salin nilai ID Klien dan Rahasia Klien dari kotak mereka di bawah Kredensial Aplikasi .

Konfigurasikan Integrasi Slack

Kunjungi Perintah Garis Miring opsi dari bilah sisi kiri.

Klik Perintah Baru tombol pada halaman yang dihasilkan. Masukkan /outline sebagai perintah. Masukkan https://outline.example.com/api/hooks.slack sebagai URL Permintaan . Masukkan deskripsi untuk perintah Anda dan kata sebagai petunjuk. Klik tombol Simpan tombol di bagian bawah setelah selesai.

Buka menu Fitur>> Interaktivitas dan Pintasan dari bilah sisi kiri. Aktifkan Interaktivitas dengan mengganti tombol sakelar dan rekatkan https://outline.example.com/api/hooks.interactive sebagai URL Permintaan. Klik Simpan Perubahan tombol untuk menyelesaikan.

Buka Setelan>> Instal Aplikasi dari bilah sisi kiri dan klik Instal ke WorkSpace untuk menginstal Aplikasi untuk ruang kerja Slack Anda.

Kunjungi Informasi Dasar halaman dari bilah sisi kiri dan salin ID Aplikasi dan Token Verifikasi nilai untuk integrasi aplikasi slack.

Buat Kredensial S3

Buat bucket S3 untuk penginstalan Outline Anda di AWS atau layanan yang kompatibel dengan S3. Setelah membuat bucket, tambahkan JSON kebijakan berikut untuk mengonfigurasi Cross-origin resource sharing (CORS). Ganti nilai AllowedOrigins dengan URL Garis Besar Anda.

[ { "AllowedHeaders":[ "*" ], "AllowedMethods":[ "PUT", "POST" ], "AllowedOrigins":[ "https://docs.mycompany.com" ], "ExposeHeaders" :[] }, { "AllowedHeaders":[], "AllowedMethods":[ "GET" ], "AllowedOrigins":[ "*" ], "ExposeHeaders":[] }]

Buat pengguna IAM dengan kebijakan berikut. Ganti my-bucket-name dengan nama sebenarnya dari bucket Outline S3 Anda.

{ "Versi":"2012-10-17", "Pernyataan":[ { "Sid":"VisualEditor", "Effect":"Izinkan", "Tindakan":[ "s3:GetObjectAcl", " s3:DeleteObject", "s3:PutObject", "s3:GetObject", "s3:PutObjectAcl" ], "Resource":"arn:aws:s3:::my-bucket-name/*" } ]} 

Sekarang setelah Anda membuat pengguna IAM, buat kunci akses dan rahasia untuk pengguna bucket Anda.

Buat Kunci Rahasia

File lingkungan memerlukan kunci rahasia dan rahasia utilitas. Jalankan perintah berikut dua kali untuk menghasilkan kedua kunci.

$ openssl rand -hex 32

Salin dan simpan nilai ini.

Buat dan Edit File Lingkungan

Buat direktori untuk pengaturan buruh pelabuhan untuk Outline.

$ mkdir ~/outline

Beralih ke direktori.

$ cd ~/outline

Buat docker.env file dan buka untuk diedit. File ini akan menyimpan semua variabel lingkungan yang diperlukan untuk instalasi.

$ nano docker.env

Tempelkan kode berikut di dalamnya. Masukkan kunci rahasia dan utils rahasia yang dibuat sebelumnya. Salin kredensial Slack yang dibuat sebelumnya untuk otentikasi dan integrasi aplikasi. Masukkan kredensial Amazon S3 Anda seperti yang ditentukan di bawah ini.

Jika Anda ingin menggunakan Google Analytics untuk melacak statistik aplikasi Outline Anda, masukkan ID Analytics Anda di bidang di bawah ini. Untuk saat ini, Outline tidak mendukung tag GA4, jadi Anda harus memasukkan ID pelacakan lama.

Untuk WEB_CONCURRENCY variabel, bagi ram sistem Anda dengan 512 dan masukkan nilai perkiraan. FORCE_HTTPS variabel disetel ke false karena kami menggunakan Nginx sebagai server proxy.

# –––––––––––––––– DIBUTUHKAN ––––––––––––––––SECRET_KEY=generate_a_new_keyUTILS_SECRET=generate_a_new_keyPOSTGRES_USER=outlinepgPOSTGRES_PASSWORD=yourpasswordURL=postingan_gres ://outlinepg:[email protected]:5432/outlineDATABASE_URL_TEST=postgres://outlinepg:[email protected]:5432/outline-testPGSSLMODE=disableREDIS_URL=redis://localhost:6379URL=https://docs.example.comPORT =3000AWS_ACCESS_KEY_ID =get_a_key_from_awsAWS_SECRET_ACCESS_KEY =get_the_secret_of_above_keyAWS_REGION =kita-timur-2AWS_S3_UPLOAD_BUCKET_URL =https://my-bucket-name.s3.us-east-2.amazonaws.comAWS_S3_UPLOAD_BUCKET_NAME=my-bucket-nameAWS_S3_UPLOAD_MAX_SIZE=26214400AWS_S3_FORCE_PATH_STYLE=true# ----- ––––––––– AUTHENTICATION ––––––––––––––SLACK_KEY=SLACK_SECRET=# ––––––––––––––– – OPTIONAL –––––––––––––––GOOGLE_ANALYTICS_ID=UA-XXXXXXX-1SLACK_VERIFICATION_TOKEN=your_tokenSLACK_APP_ID=A0XXXXXXXSLACK_MESSAGE_ACTIONS=trueFORCE_HTTPS=falseENABLE_ pra> 

File di atas didasarkan pada file sampel dari repositori Github Outline. Jika Anda perlu mengonfigurasi setelan tambahan, Anda dapat menyalinnya dari setelan tersebut ke file Anda.

Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.

Langkah 5 - Buat File Tulis Docker untuk Outline

Buat docker-compose.yml file dan buka untuk diedit.

$ nano docker-compose.yml

Tempelkan kode berikut di dalamnya.

versi:"3" layanan:outline:image:outlinewiki/outline:restart terbaru:selalu perintah:sh -c "sekuel benang:migrasi --env=production-ssl-disabled &&yarn start --env=production- ssl-disabled" env_file:./docker.env ports:- "3000:3000" depend_on:- postgres - redis redis:image:redis restart:always env_file:./docker.env ports:- "6379:6379" volume:- ./redis.conf:/redis.conf perintah:["redis-server", "/redis.conf"] postgres:image:postgres restart:selalu env_file:./docker.env ports:- "5432:5432" volume:- database-data:/var/lib/postgresql/datavolumes:database-data:

Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.

Langkah 6 - Instal Garis Besar

Instal Outline dengan memulai container.

$ docker-compose up -d

Periksa status kontainer.

$ docker ps

Langkah 7 - Instal SSL

Untuk menginstal sertifikat SSL menggunakan Let's Encrypt, kita perlu mengunduh alat Certbot. Kami akan menggunakan penginstal paket Snapd untuk itu.

Instal penginstal Snap.

$ sudo apt install snapd

Pastikan versi Snapd Anda terbaru.

$ sudo snap install core &&sudo snap refresh core

Instal Certbot.

$ sudo snap install --classic certbot

Gunakan perintah berikut untuk memastikan bahwa perintah Certbot dapat dijalankan dengan membuat tautan simbolis ke /usr/bin direktori.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Buat sertifikat SSL.

$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d outline.example.com

Perintah di atas akan mengunduh sertifikat ke /etc/letsencrypt/live/outline.example.com direktori di server Anda.

Buat grup Diffie-Hellman sertifikat.

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Buat direktori webroot tantangan untuk pembaruan otomatis Let's Encrypt.

$ sudo mkdir -p /var/lib/letsencrypt

Buat Pekerjaan Cron untuk memperbarui SSL. Ini akan berjalan setiap hari untuk memeriksa sertifikat dan memperbaruinya jika diperlukan. Untuk itu, buat dulu file /etc/cron.daily/certbot-renew dan buka untuk diedit.

$ sudo nano /etc/cron.daily/certbot-renew

Tempelkan kode berikut.

#!/bin/shcertbot perbarui --cert-name outline.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.

Ubah izin pada file tugas agar dapat dieksekusi.

$ sudo chmod +x /etc/cron.daily/certbot-renew

Langkah 8 - Instal Nginx

Ubuntu dikirimkan dengan versi Nginx yang lebih lama. Anda perlu mengunduh repositori Nginx resmi untuk menginstal versi terbaru.

Impor kunci penandatanganan Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg>/dev/null

Tambahkan repositori untuk versi stabil Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list

Perbarui repositori sistem.

$ sudo apt update

Instal Nginx.

$ sudo apt install nginx

Verifikasi penginstalan.

$ nginx -vnginx versi:nginx/1.20.2

Aktifkan layanan Nginx.

$ sudo systemctl aktifkan nginx

Langkah 9 - Konfigurasi Nginx

Sampai saat ini, Shlink telah berjalan di sistem lokal melalui port 8080. Kami akan menggunakan Nginx untuk bertindak sebagai proxy terbalik untuk berjalan di domainnya.

Buat file konfigurasi untuk server Shlink di /etc/nginx/conf.d direktori.

$ sudo nano /etc/nginx/conf.d/outline.conf

Tempelkan kode berikut di dalamnya.

server { nama_server outline.example.com; dengarkan 443 ssl http2; dengarkan [::]:443 ssl http2; access_log /var/log/nginx/outline.access.log; error_log /var/log/nginx/outline.error.log; ssl_certificate /etc/letsencrypt/live/outline.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/outline.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/outline.example.com/chain.pem; ssl_session_timeout 1 hari; ssl_session_cache dibagikan:MozSSL:10m; ssl_session_tickets mati; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDALY -RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_stapel aktif; ssl_stapling_verifikasi aktif; ssl_dhparam /etc/ssl/certs/dhparam.pem; lokasi / { proxy_pass http://localhost:3000; proxy_set_header Tingkatkan $http_upgrade; proxy_set_header Koneksi "Tingkatkan"; proxy_set_header Host $host; proxy_set_header X-Diteruskan-Untuk $proxy_add_x_forwarded_for;proxy_set_header Host $host; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $skema; proxy_set_header X-Forwarded-Proto $skema; proxy_redirect mati; }}## HTTPS Redirectserver { dengarkan 80; dengarkan [::]:80; nama_server garis besar.contoh.com; kembalikan 301 https://$host$request_uri;}

Setelah selesai, simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.

Buka file /etc/nginx/nginx.conf untuk diedit.

$ sudo nano /etc/nginx/nginx.conf

Tambahkan baris berikut sebelum baris include /etc/nginx/conf.d/*.conf; .

server_names_hash_bucket_size 64;

Simpan file dengan menekan Ctrl + X dan memasukkan Y ketika diminta. Validasi Nginx lagi.

Verifikasi sintaks file konfigurasi Nginx.

$ sudo nginx -tnginx:file konfigurasi /etc/nginx/nginx.conf sintaksnya oknginx:file konfigurasi /etc/nginx/nginx.conf pengujian berhasil

Mulai server Nginx.

$ sudo systemctl start nginx

Langkah 10 - Akses Garis Besar

Luncurkan domain https://outline.example.com di browser Anda, dan Anda akan disambut dengan halaman berikut.

Klik Lanjutkan dengan Slack untuk masuk dengan Slack dan menghubungkan ruang kerja Anda.

Setelah masuk, beranda Outline akan terbuka, dan Anda dapat mulai mengerjakannya.

Aplikasi Outline untuk Slack memungkinkan Anda mencari dan menempelkan tautan ke dokumen apa pun dari dalam ruang kerja Anda. Untuk melakukannya, Buka ruang kerja slack Anda dan ketik /outline <searchterm> dalam pesan dan mengeposkannya.

Ini akan secara otomatis menemukan dokumen yang terkait dengan istilah pencarian dan mempostingnya di pesan Anda.

Langkah 11 - Perbarui Garis Besar

Untuk memperbarui wiki Garis Besar, jalankan perintah berikut. Perintah pertama dimatikan dan menghapus wadah. Yang kedua menarik versi terbaru gambar Docker untuk Outline dan alat lainnya. Anda dapat menjalankan perintah yang sama jika Anda perlu membuat perubahan apa pun pada file penulisan Docker atau file lingkungan.

$ docker-compose down --remove-orphans$ docker-compose pull 

Jalankan perintah berikut untuk mengupgrade database.

$ docker-compose run --rm outline yarn db:migrate --env=production-ssl-disabled

Mulai penampung baru dengan gambar baru sambil menjaga data Anda tetap utuh.

$ docker-compose up -d

Kesimpulan

Ini menyimpulkan tutorial kami tentang menginstal Outline Knowledgebase Wiki di server Ubuntu 20.04 menggunakan Docker. Jika Anda ingin mempelajari lebih lanjut tentang Outline, Anda dapat mengikuti dokumentasi resminya. Jika Anda memiliki pertanyaan, kirimkan di komentar di bawah.


Ubuntu
  1. Cara Menginstal Docker Di Ubuntu 18.04

  2. Cara Menginstal Docker di Ubuntu 16.04

  3. Cara Menginstal Docker di Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  1. Cara Menginstal Kubernetes di Ubuntu 18.04

  2. Cara Menginstal Docker Compose di Ubuntu 18.04

  3. Cara Menginstal Rancher di Ubuntu

  1. Cara Menginstal Docker Compose di Ubuntu 20.04

  2. Cara menginstal Docker di Ubuntu 22.04

  3. Cara Menginstal Docker di Ubuntu 20.04