-
Notifications
You must be signed in to change notification settings - Fork 1
luapower/vps
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
# luapower vps installation
needs 1GB RAM; Ubuntu 18.04
## functionality
* luapower-related
* luapower.com website (openresty+luapower)
* luapower.com forum (nodebb+redis)
* mirror for compiler tools (static files)
* apt mirror for ubuntu's "test toolchain" PPA
* git mirror for luapower repos (git-mirror; currently empty)
* personal stuff
* mokingburd.de (static website)
* capr.github.io (static website)
* luapower.com/oldbeat (static website)
## crontab
* luapower source code
* pull all packages (hourly, so that docs are updated and for code search; we have github hooks on all repos that trigger pulling, so this is just a safety measure)
* luapower bundle
* update/push luapower-all (each half hour, so that master.zip from the download button reflects the current state of the code)
* release-tag luapower-all (daily, so that we can download old releases)
* download github.com/luapower/luapower-all/archive/master.zip (every day, so that its reported size on the download button reflects the actual size of the archive)
* forum
* backup the redis db and any new files (plugins, customization, etc.) to the `forum` repo (daily)
## prerequisites
### update/install packages
apt-get update
apt-get install apt-mirror build-essential cscope dos2unix dpkg-dev fcgiwrap git git-core global htop imagemagick lib32bz2-1.0 lib32ncurses5 lib32z1 libncurses5-dev libpcre3-dev libreadline-dev libssl-dev make mc nodejs nodejs-legacy npm python-software-properties software-properties-common tig zip curl mysql-server php5-common php5-cli php5-fpm php5-mysql
### install git-lfs
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
### add a new user and login
adduser cosmin
usermod -aG sudo cosmin
echo "cosmin ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
passwd -d cosmin
su - cosmin
### enable pushing to github
ssh-keygen -t rsa -C "[email protected]"
*** goto https://github.com/settings/keys and add a new key with the contents of ~/.ssh/id_rsa.pub
## enable logging in without a password
*** import contents of .ssh/id_rsa into puttygen and make a putty ppk file to use with putty
cp .ssh/id_rsa.pub .ssh/authorized_keys
cp .ssh/id_rsa .ssh/id_rsa.pub .ssh/authorized_keys /root/.ssh/ # to login as root directly with the same key
## install
~
git clone [email protected]:luapower/vps.git ~
sudo ln -sf ~/git-up /usr/lib/git-core/git-up
mgit
git clone [email protected]:capr/multigit.git
sudo ln -sf ~/multigit/mgit /usr/local/bin/mgit
luapower
mkdir luapower
cd luapower
mgit clone [email protected]:luapower/luapower-repos
mgit clone-all
*** generate luapower_db.lua by running ./luapower update-db on all platforms
luapower-all
git clone [email protected]:luapower/luapower-all.git
mv luapower-all/.git luapower/
rm -R luapower-all
redis
sudo apt-add-repository ppa:chris-lea/redis-server
sudo apt-get update
sudo apt-get install redis-server
nodebb
mkdir nodebb
cd nodebb
mgit clone [email protected]:luapower/forum.git
mgit clone-release fixed
*** get secret from safe and put it into .mgit/secret and into config.json
mgit restore # restore the database
ssl-cert (old)
mkdir ssl-cert
cd ssl-cert
*** make file luapower.com.key with contents from safe
*** make file luapower.com.crt with contents from safe (paste both CRT and CA sections)
*** make file ifthen-dojo.io.key with contents from safe
*** make file ifthen-dojo.io.crt with contents from safe (paste both CRT and CA sections)
openssl dhparam -out dhparam.pem 4096 (note: this will take 15min to complete!)
ssl-cert / letsencrypt (new)
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo certbot certonly --deploy-hook "/home/cosmin/nginx/ngx -s reload" --webroot -w /home/cosmin/luapower/luapower-www -d luapower.com
ssl-cert / letsencrypt (renew)
put `webroot-path = /home/cosmin/luapower/luapower-www` in /etc/letsencrypt/cli.ini
put `authenticator = webroot` in /etc/letsencrypt/renewal/luapower.com.conf
put `sudo -u cosmin /home/cosmin/nginx/ngx -s reload` in /etc/letsencrypt/renewal-hooks/deploy/ngx-reload
put `sudo certbot renew` in /home/cosmin/crontab
files
cd files
./get-all.sh # actually get them from the mega backup
apt-mirror
*** comment all lines in /etc/apt/mirror.list and enter these lines instead:
deb-amd64 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu lucid main
deb-i386 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu lucid main
cron & boot
mkdir logs
crontab crontab
## start the servers
./nodebb/nodebb-start
./luapower/nginx-luapower
./nginx/ngx-start
## personal stuff
mokingburd.de
git clone [email protected]:capr/mokingburd.de.git # nginx is already configured to serve it
capr.github.io
git clone [email protected]:capr/capr.github.io.git # nginx is already configured to serve it
luapower.com/oldbeat
git clone [email protected]:capr/oldbeat.git # nginx is already configured to serve it