diff --git a/README.md b/README.md index 7164894..d01b319 100644 --- a/README.md +++ b/README.md @@ -34,14 +34,12 @@ Theo solved this by doing all of the work client side. Once you've went to https ### How to self host -1. Clone the repo. -2. Fill out the .env.example file in the root directory & rename it to .env. -3. Run `pnpm install && pnpm build` from the root of the repo. -4. Navigate to the docker folder & fill out the .env.example file & rename it to .env. +1. Clone the repo & fill out the .env.example files in the root directory & the docker directory & rename them to .env. - *Note: Our docker compose assumes you plan to select an external network.* -5. Run `sudo docker compose up -d` from within the docker directory. +2. Run the bash script `host-bang` in the docker directory with the root directory of the project as an argument. + - *Note: You can also simply run it from the root or docker directory without an argument.* ### How to update the website -1. Run the bash script `update-bang` in the docker directory with the root directory of the project as the argument. +1. Run the bash script `update-bang` in the docker directory with the root directory of the project as an argument. - *Note: You can also simply run it from the root or docker directory without an argument.* diff --git a/docker/host-bang b/docker/host-bang new file mode 100755 index 0000000..b7d5a15 --- /dev/null +++ b/docker/host-bang @@ -0,0 +1,51 @@ +#!/bin/bash + +# Function to check if we're in the correct directory +check_directory() { + if [ -d "docker" ] && [ -f "package.json" ]; then + return 0 # We're in the root directory + fi + return 1 +} + +# Initialize root_dir +root_dir="" + +# Check if argument is provided +if [ $# -eq 1 ]; then + # Use provided path + if [ -d "$1" ]; then + root_dir="$1" + cd "$root_dir" || exit 1 + else + echo "Error: Provided directory does not exist" + exit 1 + fi +else + # No argument provided, try to determine location + current_dir=$(basename "$(pwd)") + + if [ "$current_dir" = "docker" ]; then + cd .. || exit 1 + elif [ "$current_dir" != "Bang" ]; then + echo "Error: Not in the correct directory and no valid path provided" + echo "Please either:" + echo "1. Run this script from the Bang root directory" + echo "2. Run this script from the docker directory" + echo "3. Provide the path to the Bang root directory as an argument" + exit 1 + fi +fi + +# Verify we're in the correct directory +if ! check_directory; then + echo "Error: Not in the correct directory structure" + echo "Make sure you're in a directory with 'docker' folder and package.json" + exit 1 +fi + +pnpm install +pnpm build +cd docker || exit 1 +sudo docker compose up -d +cd ..