From 1868e82fc61e755935131e070370ebd74d74197d Mon Sep 17 00:00:00 2001 From: balzack Date: Wed, 16 Nov 2022 19:31:30 -0800 Subject: [PATCH] adding instructions for aws installation --- doc/aws.md | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 doc/aws.md diff --git a/doc/aws.md b/doc/aws.md new file mode 100644 index 00000000..ee125de5 --- /dev/null +++ b/doc/aws.md @@ -0,0 +1,97 @@ +# Install Databag in AWS + +These instructions assume you have the following setup: + - an AMD64 Ubuntu EC2 instance with incoming ports 443 and 80
+ - an EFS instance
+ - a domain name pointing the the IP of your EC2 instance
+ +## Step 1: obtain cert + sudo apt-get install certbot
+ sudo certbot certonly --standalone -d
+ +## Step 2: install databag dependencies + sudo apt-get -y install ffmpeg
+ sudo apt-get -y install curl
+ sudo apt-get -y install net-tools
+ sudo apt-get -y install jq
+ sudo apt-get -y install netcat
+ sudo apt-get -y install unzip
+ sudo apt-get -y install wget
+ sudo apt-get -y install git
+ sudo apt-get -y install vim
+ sudo apt-get -y install fail2ban
+ sudo apt-get -y install imagemagick-6.q16
+ sudo apt-get -y install build-essential
+ sudo apt-get -y install sqlite3
+ sudo apt-get -y install openssh-client
+ apt-get -y install npm
+ apt-get -y upgrade
+ npm install --global yarn
+ npm install -g n
+ n stable
+ +## Step 3: download and install golang + wget https://go.dev/dl/go1.19.3.linux-amd64.tar.gz
+ sudo tar -C /usr/local -xzf go1.19.3.linux-amd64.tar.gz
+ +## Step 4: clone and build the server + mkdir /app
+ cd /app
+ git clone https://github.com/balzack/databag.git
+ cd /app/databag/net/web
+ yarn config set network-timeout 300000
+ yarn --cwd /app/databag/net/web install
+ yarn --cwd /app/databag/net/web build
+ cd /app/databag/net/server
+ /usr/local/go/bin/go build databag
+ +## Step 5: setup databag paths + mkdir -p /var/lib/databag/assets
+ mkdir -p /opt/databag/transform
+ cp /app/databag/net/container/transform/* /opt/databag/transform/
+ +## Step 6: install and mount EFS + sudo apt-get update
+ sudo apt-get -y install git binutils
+ git clone https://github.com/aws/efs-utils
+ cd efs-utils
+ ./build-deb.sh
+ sudo apt-get -y install ./build/amazon-efs-utils*deb
+ sudo mount -t efs file-system-id /var/lib/databag/assets
+ +## Step 7: initialize the internal datbase + sqlite3 /var/lib/databag/databag.db "VACUUM;"
+ sqlite3 /var/lib/databag/databag.db "CREATE TABLE IF NOT EXISTS 'configs' ('id' integer NOT NULL UNIQUE,'config_id' text NOT NULL,'str_value' text,'num_value' integer,'bool_value' numeric,'bin_value' blob,PRIMARY KEY ('id'));"
+ sqlite3 /var/lib/databag/databag.db "CREATE UNIQUE INDEX IF NOT EXISTS 'idx_configs_config_id' ON 'configs'('config_id');"
+ sqlite3 /var/lib/databag/databag.db "insert into configs (config_id, str_value) values ('asset_path', '/var/lib/databag/assets');"
+ sqlite3 /var/lib/databag/databag.db "insert into configs (config_id, str_value) values ('script_path', '/opt/databag/transform/');"
+ +## Step 8: launch the server + cd /app/databag/net/server
+ nohup nice -n -5 /usr/local/go/bin/go run databag &
+ +## Step 9: configure the server + Open your brower to the pi hostname
+ Click the 'cog' in the upper right
+ Set an admin password
+ Select the 'cog' to bring up the settings modal
+ - set your hostname as
+ - set the key to RSA 2048
+ - enable push notifications
+ - enable images
+ - disable audio
+ - disable video
+ +## Step 10: create accounts + Still in the admin dashboard
+ Click the 'add-user' button
+ Open the link in a new tab
+ Set a username and password
+ Setup your profile
+ Connect with contacts on other federated instances
+ +## Step 11: host for your friends and family + Back in the admin dashboard
+ Click the 'add-user' and send the link to anyone you want to host
+ +