diff --git a/README.txt b/README.txt index d6cfc9c..2c98be9 100644 --- a/README.txt +++ b/README.txt @@ -2,80 +2,40 @@ Repo for my personal website. -# install ubuntu server 18.04 -# https://tutorials.ubuntu.com/tutorial/tutorial-install-ubuntu-server#0 -# update -sudo apt update -sudo apt upgrade - -# install docker and docker-compose -# https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04 -# https://www.digitalocean.com/community/tutorials/how-to-install-docker-compose-on-ubuntu-18-04 - -# enable ufw and set rules -sudo ufw allow 22/tcp -sudo ufw allow 80/tcp -sudo ufw allow 443/tcp -sudo ufw enable +If you have the keys to my castle, you should be able to archive the entire top level folder, move everything to another server and just deploy with: +docker-compose up -d -# make unboundedpress directory -mkdir unboundedpress -cd unboundedpress +But that is being pretty optimistic. -# pull git repo +In the docker-compose.yml file, there are detailed notes of non-automatic steps that need to be taken, especially for deploying from scratch. -# change dir name (the git repo is unboundedpress but make it www) -mv ~/unboundedpress/unboundedpress ~/unboundedpress/www +Here are some useful tips. -# put in sensitive data in all the *.template files and -# install everything -docker-compose up -d +The current server is running on ubuntu server 22.04/ -# NEXTCLOUD -# update nextcloud since the dbs were initialized to handle 4-byte characters -docker exec -it mariadb mysql -u root -p -use nextcloud; -set global innodb_file_format=Barracuda; -set global innodb_large_prefix=on; -ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -exit -docker-compose exec --user www-data nextcloud php occ config:system:set mysql.utf8mb4 --type boolean --value="true" -docker-compose exec --user www-data nextcloud php occ maintenance:repair +# Running on docker. Here are some install tips. +# https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-22-04 +# https://www.digitalocean.com/community/tutorials/how-to-install-docker-compose-on-ubuntu-22-04 -# GITEA -# install gitea through the web-interface and create and fill in Administrator Account Settings -# this might make nginx time out, but that should be ok. It is still running scripts server side -# set ROOT_URL in gitea/gitea/app.ini and restart container -ROOT_URL = https://gitea.unboundedpress.org -# migrate repose from github +# There are two .env files that are the same and go at the top level folder and again in portfolio/src. Templates are provided. -# UNBOUNDEDPRESS -# example of restoring the mongodb -# move database backup to unboundedpress/mongodb_backup -docker exec -it mongo bash -mongorestore --host localhost --port 27017 -d unboundedpress -u username -p password --authenticationDatabase admin /backup/db_dump_2019_07_12/unboundedpress -# here is an example of a file upload: -curl -v -u user:pass -X POST -F 'properties={"filename":"filename"}' -F "file=@filepath_here" https://restheart.unboundedpress.org/unboundedpress/scores.files -# TODO: example of mongodb dump -mongodump --host localhost --port 27017 -d unboundedpress -o /backup/db_dump_2020_03_30 -u username -p password --authenticationDatabase admin -# TODO: examples of the nextcloud and gitea dump and restore -# TODO: maybe try to add some kind of caching -# TODO: consider making mongodb a replica set -# TODO: example of restheart file upload +# Here are a list of the service +# Main components +porfolio - node server and frontend for my porfilio that uses mongo backend +mongo - houses the data of my portfolio +restheart - api to feed data from mongo to portfolio (though there are some end points built into the node app) +gitea - my code repository +mysql-gitea - databse for gitea +nginx-proxy - reverse proxy for everything +acme-companion - lets encrypt certificate manager -# SERVER MAINTANENCE -# update dynamic dns script and make cron (currently in /etc/cron.hourly/update_dns -#!/bin/bash +# Extra components +nextcloud +mysql-nextcloud -curl "https://api.1984.is/1.0/freedns/?apikey={{{KEY}}}&domain=unboundedpress.org&ip=" -curl "https://api.1984.is/1.0/freedns/?apikey={{{KEY}}}&domain=www.unboundedpress.org&ip=" -curl "https://api.1984.is/1.0/freedns/?apikey={{{KEY}}}&domain=restheart.unboundedpress.org&ip=" -curl "https://api.1984.is/1.0/freedns/?apikey={{{KEY}}}&domain=gitea.unboundedpress.org&ip=" -curl "https://api.1984.is/1.0/freedns/?apikey={{{KEY}}}&domain=nextcloud.unboundedpress.org&ip=" -curl "https://api.1984.is/1.0/freedns/?apikey={{{KEY}}}&domain=dev.unboundedpress.org&ip=" -<<<<<<< HEAD -curl "https://api.1984.is/1.0/freedns/?apikey={{{KEY}}}&domain=express.unboundedpress.org&ip=" -# Backups are done using rsnapshot (currently in /etc/cron.weekly/backup.sh) -======= -# Backups are done using rsnapshot (currently in /etc/cron.weekly/backup) ->>>>>>> 29c197a67b7278fe73cead0708e8d73fe06f1d11 +# Here are some useful tips for mongo +# dump and restore example: +mongodump --host localhost --port 27017 -d unboundedpress -o /backup/db_dump_2023_04_07 -u username -p password --authenticationDatabase admin +mongorestore --host localhost --port 27017 -d portfolio -u username -p password --authenticationDatabase admin /db_backups/db_dump_2023_04_07/unboundedpress +# here is an example of a file upload through restheart: +curl -v -u user:pass -X POST -F 'properties={"filename":"filename"}' -F "file=@filepath_here" https://unboundedpress.org/api/scores.files