-
-
Notifications
You must be signed in to change notification settings - Fork 442
Create SteVe Instance in AWS Lightsail
- How to create a SteVe Server using AWS Lightsail (free tier)
- Prepare AWS
1. Log into AWS Dashboard AWS Services -> Lightsail
2. Create Instance, Platform Linux/Unix, OS Only Ubuntu 18.04 LTS, -> Status 2024: UBUNTU 24.x Upload public key, select smallest plan -> Status 2024: Memory Minimum 1GB

3. Create Static IP address, Attach to Instance

4. Click on Instance -> Networking, Under Firewall Select + Add Another TCP 8080

5. Create Database, Pick MySQL 5.7.26, You can leave Username and Password to default, Plan Standard / smallest

6. Wait for the database to start and copy database credentials (endpoint, username and password)

- ## Configure VM
1. Connect to instance via ssh using the public IP.

2. Update everything: `sudo apt update && sudo apt -y upgrade` (don't override the configs)
3. Install required packages:
- a. `sudo apt install maven`
- b. `sudo apt install mysql-client`
- c. `sudo apt-get install openjdk-17-jdk`
4. Prepare Database (use the username, host and password from earlier):
`mysql -u dbmasteruser -h ls-e98192e66a6XXXXXXXXXXXXXXXXXX.c0ftlmkcbxge.eu-central-1.rds.amazonaws.com -p`
`mysql> CREATE DATABASE stevedb CHARACTER SET utf8 COLLATE utf8_unicode_ci;`
`mysql> quit`
5. Checkout SteVe: `git clone https://github.com/RWTH-i5-IDSG/steve.git; cd steve`
6. Configure SteVe: `vi src/main/resources/config/prod/main.properties`
- configure `db.ip`, `db.user` and `db.password` to match your MySQL information, e.g. `ls-e98192e66a6XXXXXXXXXXXXXXXXXX.c0ftlmkcbxge.eu-central-1.rds.amazonaws.com` (MySQL endpoint) as `db.ip`, `dbmasteruser` as `db.user` and `db.password` as shown.
- Bind SteVe to all interfaces by setting: `server.host = 0.0.0.0`
- Use a *strong* password for `auth.password`
7. Build Steve (we need to enforce lower memory usage on the tiny instance): `export MAVEN_OPTS="-Xmx200m" && mvn package`
8. Start it. I suggest running it inside screen or tmux: `java -jar target/steve.jar` You'll be able to access SteVe via the Lightsail public IP.