Как настроить CodiMD как личную вики?

Prueba esto:

set pppoe.username "username provided by ISP"
set pppoe.password "password"
2
14.05.2019, 13:36
1 ответ

Я понял это. Я поместил его в контейнер LXC для изоляции и безопасности. Я бы приветствовал советы о том, как лучше выполнить эти шаги.

lxc launch ubuntu:18.04/amd64 codimd
lxc exec codimd -- apt update
lxc exec codimd -- apt install -y nodejs npm sqlite3
lxc exec codimd -- npm install -g node-gyp
lxc exec codimd -- npm install -g yarn
lxc exec codimd -- git clone https://github.com/codimd/server.git
lxc exec codimd -- bash -c 'cd server && bin/setup'
VMIP=$(lxc list codimd -c4 --format=csv |grep -o '^\S*'); echo $VMIP  # use this IP below
lxc exec codimd -- vi server/config.json
# in vi, under "production", set "domain" to the IP displayed above
# in vi, copy 4 "db" lines from "development" to "production", add final comma
# in vi, delete 8 "db" lines for "postgres"
# in vi, delete 15 "saml" lines
lxc exec codimd -- vi server/.sequelizerc
# in vi, set "url" to 'sqlite://./db.codimd.sqlite'
lxc exec codimd -- vi server/lib/config/default.js
# in vi, set port to 80
lxc exec codimd -- bash -c 'cd server && npm run build'
#test it: lxc exec codimd -- bash -c 'cd server && npm start --production'
lxc exec codimd -- bash -c '(crontab -l 2>/dev/null; echo @reboot /bin/bash -c \""cd /root/server && npm start --production"\") |sudo crontab'
lxc stop codimd && sleep 3 && lxc start codimd
firefox "http://$VMIP"

Обновление 2020 -04 -26:Я прошел долгий путь с CodiMD, но все еще люблю его. Приведенные ниже шаги представляют собой мой «новый -и -улучшенный» процесс установки. В частности, не следует редактировать файлы .js, как я делал выше, использовать Postgres вместо SQLite и http s .

Наконец, если кого-то интересует функция глобального поиска, я добавил ее в мой форк CodiMD на Github . Однако необходимо сделать 2 важных замечания :: он нарушает модель разрешений CodiMD, поскольку позволяет любому вошедшему в систему -пользователю находить страницы других пользователей; и я считаю это качество «альфа» (, хотя я использую его в течение 7 месяцев без проблем ).

Вот моя обновленная процедура установки.

  • установить LXD:
sudo apt install -y lxd
sudo lxd init --auto --storage-backend=dir
  • создать и обновить контейнер:
lxc launch ubuntu:18.04 codimd
lxc exec codimd -- apt update && lxc exec codimd -- apt upgrade -y
  • установить CodiMD:
lxc exec codimd -- apt install -y git nodejs npm postgresql
lxc exec codimd -- npm install -g node-gyp
lxc exec codimd -- npm install -g yarn
lxc exec codimd -- git clone https://github.com/codimd/server.git
lxc exec codimd -- bash -c 'cd server && bin/setup'
  • установить PostgreSQL:
lxc exec codimd -- sudo -i -u postgres createuser --createdb codimd
lxc exec codimd -- sudo -i -u postgres createdb codimd
lxc exec codimd -- useradd codimd
lxc exec codimd -- mkdir /home/codimd
lxc exec codimd -- chown -R codimd:codimd /home/codimd
lxc exec codimd -- sudo -i -u codimd psql --command='\password codimd'  # set password to <pgpass>
lxc exec codimd -- sudo -i -u codimd psql --command='\conninfo'  # verify
  • создать собственный -подписанный сертификат TLS(источник):
lxc exec codimd -- openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/codimdselfsigned.key -out /etc/ssl/certs/codimdselfsigned.crt  # use defaults except Common Name: $MYURL
lxc exec codimd -- openssl dhparam -dsaparam -out /etc/ssl/dhparam.pem 4096
  • сборка:
lxc exec codimd -- bash -c 'cd server && npm run build'
  • включить брандмауэр (блокировать исходящий интернет, поэтому мы уверены, что он не нужен):
lxc exec codimd -- ufw enable
lxc exec codimd -- ufw default allow incoming # allow inbound https, ssh
lxc exec codimd -- ufw default deny outgoing
  • выполнить один раз для проверки на наличие ошибок (ctrl -c для выхода):
#test it: lxc exec codimd -- bash -c 'cd server && npm start --production'
  • добавить учетные записи пользователей:
lxc exec codimd -- bash -c "cd server && NODE_ENV=production bin/manage_users --pass $USERPASSW --add $EMAIL1"
lxc exec codimd -- bash -c "cd server && NODE_ENV=production bin/manage_users --pass $USERPASSW --add $EMAIL2"
lxc exec codimd -- bash -c "cd server && NODE_ENV=production bin/manage_users --pass $USERPASSW --add $EMAIL3"
cd /tmp
printf "[Unit]\nDescription=CodiMD collaborative markdown notes\n" >codimd.service
printf "Documentation=https://github.com/codimd/server\nAfter=network.target\nAfter=postgresql.service\n\n" >>codimd.service
printf "[Service]\nType=exec\nRestartSec=2s\nUser=root\nGroup=root\nWorkingDirectory=/root/server\n" >>codimd.service
printf "ExecStart=/usr/bin/npm start --production\nRestart=always\nPrivateTmp=true\nPrivateDevices=true\n\n" >>codimd.service
printf "[Install]\nWantedBy=multi-user.target\n" >>codimd.service
lxc file push codimd.service codimd/lib/systemd/system/codimd.service
lxc exec codimd -- systemctl enable /lib/systemd/system/codimd.service
lxc exec codimd -- systemctl daemon-reload
lxc exec codimd -- systemctl enable codimd
  • для отладки, просмотр log.console()вывода через:
lxc exec codimd -- systemctl stop codimd
lxc exec codimd -- bash -c 'cd server && npm start --production'
#... monitor output; ctrl-c to quit
lxc stop codimd; sleep 5; lxc start codimd
  • перезагрузить и подключить:
lxc stop codimd; sleep 5; lxc start codimd
firefox "https://$MYURL"
  • в Firefox примите самоподписанный -сертификат и войдите в систему
3
27.01.2020, 22:17

Теги

Похожие вопросы