From 22a1acba3bfbcfc3c7906ad3c6a8477fd49b0c6d Mon Sep 17 00:00:00 2001 From: Sean Morley Date: Wed, 10 Jul 2024 12:26:12 -0400 Subject: [PATCH 1/2] docs --- backend/docker-compose.yml | 32 ----------------- documentation/docs/Installation/docker.md | 43 +++++++++++++++++++++++ documentation/docs/intro.md | 40 +-------------------- frontend/src/routes/profile/+page.svelte | 3 +- 4 files changed, 46 insertions(+), 72 deletions(-) delete mode 100644 backend/docker-compose.yml diff --git a/backend/docker-compose.yml b/backend/docker-compose.yml deleted file mode 100644 index 1d573b9c..00000000 --- a/backend/docker-compose.yml +++ /dev/null @@ -1,32 +0,0 @@ -version: "3.9" - -services: - db: - image: postgres:latest - environment: - POSTGRES_DB: database - POSTGRES_USER: adventure - POSTGRES_PASSWORD: changeme123 - volumes: - - postgres_data:/var/lib/postgresql/data/ - - web: - build: . - environment: - - PGHOST=db - - PGDATABASE=database - - PGUSER=adventure - - PGPASSWORD=changeme123 - - SECRET_KEY=changeme123 - ports: - - "8000:8000" - depends_on: - - db - volumes: - - adventurelog_media:/code/media/ - -volumes: - postgres_data: - driver: local - adventurelog_media: - driver: local diff --git a/documentation/docs/Installation/docker.md b/documentation/docs/Installation/docker.md index 28119a59..c56665dc 100644 --- a/documentation/docs/Installation/docker.md +++ b/documentation/docs/Installation/docker.md @@ -3,3 +3,46 @@ sidebar_position: 1 --- # Docker 🐋 + +Docker is the perffered way to run AdventureLog on your local machine. It is a lightweight containerization technology that allows you to run applications in isolated environments called containers. +**Note**: This guide mainly focuses on installation with a linux based host machine, but the steps are similar for other operating systems. + +## Prerequisites + +- Docker installed on your machine/server. You can learn how to download it [here](https://docs.docker.com/engine/install/). + +## Getting Started + +Get the `docker-compose.yml` file from the AdventureLog repository. You can download it from [here](https://github.com/seanmorley15/AdventureLog/blob/main/docker-compose.yml) or run this command to download it directly to your machine: + +```bash +wget https://raw.githubusercontent.com/seanmorley15/AdventureLog/main/docker-compose.yml +``` + +## Configuration + +Here is a summary of the configuration options available in the `docker-compose.yml` file: + + + +### Frontend Container (web) + +| Name | Required | Description | Default Value | +| ------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | +| `PUBLIC_SERVER_URL` | Yes | What the frontend SSR server uses to connect to the backend. | http://server:8000 | +| `ORIGIN` | Sometimes | Not needed if using HTTPS. If not, set it to the domain of what you will acess the app from. | http://localhost:8080 | +| `BODY_SIZE_LIMIT` | Yes | Used to set the maximum upload size to the server. Should be changed to prevent someone from uploading too much! Custom values must be set in **kiliobytes**. | Infinity | + +### Backend Container (server) + +| Name | Required | Description | Default Value | +| ----------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | +| `PGHOST` | Yes | Databse host. | db | +| `PGDATABASE` | Yes | Database. | database | +| `PGUSER` | Yes | Database user. | adventure | +| `PGPASSWORD` | Yes | Database password. | changeme123 | +| `DJANGO_ADMIN_USERNAME` | Yes | Default username. | admin | +| `DJANGO_ADMIN_PASSWORD` | Yes | Default password, change after inital login. | admin | +| `DJANGO_ADMIN_EMAIL` | Yes | Default user's email. | admin@example.com | +| `PUBLIC_URL` | Yes | This is the publically accessible url to the **nginx** container. You should be able to acess nginx from this url where you access your app. | http://127.0.0.1:81 | +| `CSRF_TRUSTED_ORIGINS` | Yes | Need to be changed to the orgins where you use your backend server and frontend. These values are comma seperated. | Needs to be changed. | diff --git a/documentation/docs/intro.md b/documentation/docs/intro.md index 7945a9cf..d79e5ea1 100644 --- a/documentation/docs/intro.md +++ b/documentation/docs/intro.md @@ -6,42 +6,4 @@ sidebar_position: 1 This tutorial will guide you how to get AdventureLog up and running on your local machine quickly and easily. -## Getting Started - -Get started by **creating a new site**. - -Or **try Docusaurus immediately** with **[docusaurus.new](https://docusaurus.new)**. - -### What you'll need - -- [Node.js](https://nodejs.org/en/download/) version 18.0 or above: - - When installing Node.js, you are recommended to check all checkboxes related to dependencies. - -## Generate a new site - -Generate a new Docusaurus site using the **classic template**. - -The classic template will automatically be added to your project after you run the command: - -```bash -npm init docusaurus@latest my-website classic -``` - -You can type this command into Command Prompt, Powershell, Terminal, or any other integrated terminal of your code editor. - -The command also installs all necessary dependencies you need to run Docusaurus. - -## Start your site - -Run the development server: - -```bash -cd my-website -npm run start -``` - -The `cd` command changes the directory you're working with. In order to work with your newly created Docusaurus site, you'll need to navigate the terminal there. - -The `npm run start` command builds your website locally and serves it through a development server, ready for you to view at http://localhost:3000/. - -Open `docs/intro.md` (this page) and edit some lines: the site **reloads automatically** and displays your changes. +Choose a next below to get started: diff --git a/frontend/src/routes/profile/+page.svelte b/frontend/src/routes/profile/+page.svelte index baa71a6f..d9bfa2da 100644 --- a/frontend/src/routes/profile/+page.svelte +++ b/frontend/src/routes/profile/+page.svelte @@ -23,7 +23,8 @@ {#if data.user && data.user.first_name && data.user.last_name}

- {data.user.first_name}, {data.user.last_name} + {data.user.first_name} + {data.user.last_name}

{/if}

{data.user.username}

From 2d596fb5501def2205e6c2ba8718a7a74ab23314 Mon Sep 17 00:00:00 2001 From: Sean Morley Date: Wed, 10 Jul 2024 12:27:18 -0400 Subject: [PATCH 2/2] readme --- README.md | 53 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 44 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index c678de9b..704cda89 100644 --- a/README.md +++ b/README.md @@ -6,19 +6,54 @@ _**⚠️ AdventureLog is in early development and is not recommended for produc --- -## Installation +# Installation -### Docker 🐋 (Recomended) +# Docker 🐋 -1. Clone the repository -2. Edit the `docker-compose.yml` file and change the database password as well as the django secret key -3. Run `docker compose up -d` to build the image and start the container -4. Wait for the app to start up and migrate then visit the port and enjoy! -5. After navigating to the app, fill out the form to create the admin user. +Docker is the perffered way to run AdventureLog on your local machine. It is a lightweight containerization technology that allows you to run applications in isolated environments called containers. +**Note**: This guide mainly focuses on installation with a linux based host machine, but the steps are similar for other operating systems. -**Note**: The `ORIGIN` variable is required for CSRF protection. It can be omitted if using a reverse proxy or other HTTPS service. +## Prerequisites -## About AdventureLog +- Docker installed on your machine/server. You can learn how to download it [here](https://docs.docker.com/engine/install/). + +## Getting Started + +Get the `docker-compose.yml` file from the AdventureLog repository. You can download it from [here](https://github.com/seanmorley15/AdventureLog/blob/main/docker-compose.yml) or run this command to download it directly to your machine: + +```bash +wget https://raw.githubusercontent.com/seanmorley15/AdventureLog/main/docker-compose.yml +``` + +## Configuration + +Here is a summary of the configuration options available in the `docker-compose.yml` file: + + + +### Frontend Container (web) + +| Name | Required | Description | Default Value | +| ------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | +| `PUBLIC_SERVER_URL` | Yes | What the frontend SSR server uses to connect to the backend. | http://server:8000 | +| `ORIGIN` | Sometimes | Not needed if using HTTPS. If not, set it to the domain of what you will acess the app from. | http://localhost:8080 | +| `BODY_SIZE_LIMIT` | Yes | Used to set the maximum upload size to the server. Should be changed to prevent someone from uploading too much! Custom values must be set in **kiliobytes**. | Infinity | + +### Backend Container (server) + +| Name | Required | Description | Default Value | +| ----------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | +| `PGHOST` | Yes | Databse host. | db | +| `PGDATABASE` | Yes | Database. | database | +| `PGUSER` | Yes | Database user. | adventure | +| `PGPASSWORD` | Yes | Database password. | changeme123 | +| `DJANGO_ADMIN_USERNAME` | Yes | Default username. | admin | +| `DJANGO_ADMIN_PASSWORD` | Yes | Default password, change after inital login. | admin | +| `DJANGO_ADMIN_EMAIL` | Yes | Default user's email. | admin@example.com | +| `PUBLIC_URL` | Yes | This is the publically accessible url to the **nginx** container. You should be able to acess nginx from this url where you access your app. | http://127.0.0.1:81 | +| `CSRF_TRUSTED_ORIGINS` | Yes | Need to be changed to the orgins where you use your backend server and frontend. These values are comma seperated. | Needs to be changed. | + +# About AdventureLog AdventureLog is a Svelte Kit and Django application that utilizes a PostgreSQL database. Users can log the adventures they have experienced, as well as plan future ones. Key features include: