Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build(other): test deployment locally #1272

Merged
merged 1 commit into from
Jul 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions deployment/local-testing/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.vagrant
20 changes: 20 additions & 0 deletions deployment/local-testing/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Local test deployment

Currently, we're deploying to a vServer. The following will set up virtual machines locally in order to test out the deployment before it hits `staging` or `production`.

1. Install [Vagrant](https://www.vagrantup.com/) on your machine

1. `cd deployment/local-testing`

1. `vagrant up` .. and wait

1. Following services are running:
- <http://localhost:8000/>
- <http://localhost:8000/api>
- <http://localhost:8000/docs>
- <http://localhost:8080/>
- <http://localhost:8082/>

1. Be amazed
roschaefer marked this conversation as resolved.
Show resolved Hide resolved

In the future we might want to use [Ansible](https://www.ansible.com/) for provisioning. We could run our playbooks against this virtual machine, too.
13 changes: 13 additions & 0 deletions deployment/local-testing/Vagrantfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Defines our Vagrant environment
#
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
config.vm.box = 'generic/alpine319'
config.vm.provision :shell, path: "bootstrap.sh"
config.vm.synced_folder '.', '/vagrant', disabled: true
config.vm.network "forwarded_port", guest: 80, host: 8000
config.vm.network "forwarded_port", guest: 8080, host: 8080
config.vm.network "forwarded_port", guest: 8082, host: 8082
end
roschaefer marked this conversation as resolved.
Show resolved Hide resolved
40 changes: 40 additions & 0 deletions deployment/local-testing/bootstrap.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#!/bin/sh

apk update
apk upgrade
apk add nginx openrc nodejs npm git mysql mysql-client


npm install pm2 -g
pm2 startup

rc-update add pm2 boot
rc-update add nginx boot
service nginx start


service mariadb setup
rc-update add mariadb boot
sed -e '/skip-networking/ s/^#*/#/' -i /etc/my.cnf.d/mariadb-server.cnf
service mariadb start


cd /var/www/localhost/htdocs/
git clone https://github.com/dreammall-earth/dreammall.earth.git
cd dreammall.earth

mkdir -p /etc/nginx/http.d
cp -f ./deployment/nginx/default.conf /etc/nginx/http.d/default.conf
cp ./deployment/nginx/frontend.conf /etc/nginx/http.d/frontend.conf
cp ./deployment/nginx/admin.conf /etc/nginx/http.d/admin.conf

service nginx restart

mysql -e "CREATE USER 'dreammall'@'localhost' IDENTIFIED BY 'SECRET'; GRANT ALL PRIVILEGES ON * . * TO 'dreammall'@'localhost'; FLUSH PRIVILEGES;"

cp backend/.env.dist backend/.env
cp presenter/.env.dist presenter/.env
cp frontend/.env.dist frontend/.env
cp admin/.env.dist admin/.env

deployment/deploy.sh