거기 안전한 자전거 HackMD 서버 구축
12415 단어 nginxHackMDeditorletsencryptMarkdown
TL;DL
사용하는 것
GitHub Docker HackMD
Nginx
Let's encrypt
절차
서버 준비
다양한 파일 준비
최종 dirctory 내용
$ ls -la
-rw-r--r-- 1 suecharo suecharo 432 Jul 30 10:10 config.json
-rw-rw-r-- 1 suecharo suecharo 764 Aug 1 10:48 docker-compose.yml
-r--r--r-- 1 root root 46 Jul 30 09:27 .htpasswd
-rw-r--r-- 1 suecharo suecharo 1228 Jul 30 09:28 nginx.conf
docker-compose.yml
GitHub Docker HackMD 에 있다
docker-compose.yml
그럼 하고 싶은 일이 없었기 때문에 재기록했다docker-compose.yml
version: '3'
services:
app:
image: hackmdio/hackmd:latest
restart: always
environment:
- HMD_DB_URL=postgres://hackmd:hackmdpass@database:5432/hackmd
volumes:
- ${PWD}/config.json:/hackmd/config.json
- app_data:/hackmd
database:
image: postgres:9.6-alpine
environment:
- POSTGRES_USER=hackmd
- POSTGRES_PASSWORD=hackmdpass
- POSTGRES_DB=hackmd
volumes:
- database:/var/lib/postgresql/data
restart: always
nginx:
image: nginx:latest
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- /etc/letsencrypt:/etc/letsencrypt
- ${PWD}/.htpasswd:/etc/nginx/.htpasswd
- ${PWD}/nginx.conf:/etc/nginx/nginx.conf
volumes:
database:
app_data:
.htpasswd
$ apt install -y apache2-utils
$ sudo htpasswd -c -b ${HackMD_dir}/.htpasswd ${user_name} ${Password}
$ sudo chmod 444 ${HackMD_dir}/.htpasswd
Let's Encrypt
공식 페이지
nginx.conf
nginx.conf
의 쓰는 방법 자체는 종교가 있을 것 같기 때문에 어디까지나 일례로서 ${your_fqdn}
를 취급하고 싶은 server의 것으로 바꾼다 nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
keepalive_timeout 65;
server_names_hash_max_size 1024;
client_max_body_size 10M;
server_tokens off;
# include /etc/nginx/conf.d/*.conf;
server {
listen 80;
server_name ${your_fqdn};
return 301 https://$host$request_uri;
}
server {
listen 443 default ssl;
server_name ${your_fqdn};
ssl_certificate /etc/letsencrypt/live/${your_fqdn}/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/${your_fqdn}/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
charset utf-8;
auth_basic 'Secret Zone';
auth_basic_user_file /etc/nginx/.htpasswd;
location / {
proxy_pass http://app:3000;
}
}
}
conf.json
GitHub Docker HackMD 에 있는
docker-compose.yml
에서는 imgur 에 이미지가 날아가 버린다 config.json
{
"production": {
"allowAnonymous": false,
"allowAnonymousEdits": false,
"defaultPermission": "editable",
"email": true,
"db": {
"username": "hackmd",
"password": "hackmdpass",
"database": "hackmd",
"host": "database",
"port": "5432",
"dialect": "postgres"
},
"imageUploadType": "filesystem"
}
}
기동·동작 확인
$ docker-compose up -d
$ docker-compose up -d
docker-compose up -d
를 하면 된다 https://${your_fqdn}/
에 액세스 Reference
이 문제에 관하여(거기 안전한 자전거 HackMD 서버 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/suecharo/items/14f4d0b5430db811254e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)