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 32Salin dan simpan nilai ini.
Buat dan Edit File Lingkungan
Buat direktori untuk pengaturan buruh pelabuhan untuk Outline.
$ mkdir ~/outlineBeralih ke direktori.
$ cd ~/outlineBuat
docker.env
file dan buka untuk diedit. File ini akan menyimpan semua variabel lingkungan yang diperlukan untuk instalasi.$ nano docker.envTempelkan 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.ymlTempelkan 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 -dPeriksa status kontainer.
$ docker psLangkah 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 snapdPastikan versi Snapd Anda terbaru.
$ sudo snap install core &&sudo snap refresh coreInstal Certbot.
$ sudo snap install --classic certbotGunakan 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/certbotBuat sertifikat SSL.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d outline.example.comPerintah 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 2048Buat direktori webroot tantangan untuk pembaruan otomatis Let's Encrypt.
$ sudo mkdir -p /var/lib/letsencryptBuat 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-renewTempelkan 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-renewLangkah 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/nullTambahkan 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.listPerbarui repositori sistem.
$ sudo apt updateInstal Nginx.
$ sudo apt install nginxVerifikasi penginstalan.
$ nginx -vnginx versi:nginx/1.20.2Aktifkan layanan Nginx.
$ sudo systemctl aktifkan nginxLangkah 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.confTempelkan 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.confTambahkan 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 berhasilMulai server Nginx.
$ sudo systemctl start nginxLangkah 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 pullJalankan perintah berikut untuk mengupgrade database.
$ docker-compose run --rm outline yarn db:migrate --env=production-ssl-disabledMulai penampung baru dengan gambar baru sambil menjaga data Anda tetap utuh.
$ docker-compose up -dKesimpulan
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