Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
31 changes: 21 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# FICSIT-Fred

A Discord bot for the Satisfactory Modding Discord
A Discord bot for the Satisfactory Modding Discord.
Features automatic log file and crash report analysis and runtime-editable commands to help answer common questions.

---

Expand All @@ -21,16 +22,17 @@ These intents are needed to receive the content of messages and receive member j

Docker is for making containers. If you're not sure what that means, look it up it's real cool! In our case, it helps
use set up all needed dependencies for Fred without you needing to do anything other than install Docker.
You can get docker [here](https://docs.docker.com/engine/install/). For Linux, make sure to **not** use Docker Desktop.
For Windows, it is the easiest way.
On Linux, use [Docker Engine](https://docs.docker.com/engine/install/) instead of use Docker Desktop.
Comment thread
budak7273 marked this conversation as resolved.
Outdated
On Windows, [Docker Desktop](https://docs.docker.com/desktop/setup/install/windows-install/) is the easiest way.
If you don't want to install Docker (especially on Windows where Docker Desktop can take up resources and requires
virtualization to be enabled), you can also manually set up a PostgreSQL DB and configure Fred to point to it.
virtualization to be enabled), you can also manually set up a PostgreSQL DB and configure Fred to point to it,
which is outside the scope of this guide.

---

### Setup

Two choices here: All through docker or hybrid local/docker.
Two choices here: All through Docker or hybrid local/Docker.
We recommend the hybrid way for ease of development. We don't have a proper devcontainer setup so debugging Fred when
running in Docker is not great.
Instead, in a hybrid setup, you'll use Docker for the Postgres DB only and run Fred locally using Poetry.
Expand All @@ -50,13 +52,13 @@ You can use `fred@fred.com` for the user and `fred` for the password. All of thi

For this, you'll need [poetry](https://python-poetry.org/).

**Make sure you are using a compatible version of python, or Fred will not build!**
**Make sure you are using a compatible version of python, or Fred will not build!**
You can find the version requirements in the [`pyproject.toml`](pyproject.toml).
We recommend the use of [pyenv](https://github.com/pyenv/pyenv) to install the best version.

Create a virtual environment with `poetry env use`, using the python version mentioned above. Then run`poetry install`.
This should create a `.venv` folder that contains the virtualenv with all the necessary packages.
Activate it using the script pointed to by `poetry env activate`.
Create a virtual environment with `poetry env use python_version_here`, using the python version mentioned above. Then run `poetry install`.
This should create a `.venv` folder that contains the virtualenv with all the necessary packages.
Activate it [running the script output when executing `poetry env activate`](https://python-poetry.org/docs/managing-environments).

Now, run `docker compose -f docker-compose-deps.yml up -d`. This should spin up the postgres DB.
You can verify that the database was properly created and manage it by going to <http://localhost:8080> where pgadmin
Expand Down Expand Up @@ -87,7 +89,16 @@ script from your IDE instead. Don't forget to use the virtualenv python!

---

## Contributing

Contribute to this project via pull requests.
It's best to discuss changes with the team on the [Satisfactory Modding Discord](https://discord.ficsit.app) first.

Make sure to run the Python [Black formatter](https://github.com/psf/black) before committing.
To do this, run `black .` in the root of the project.
This will follow the style rules set in the `pyproject.toml`.

## Thanks

This project is maintained by Feyko and Borketh, with contributions from the Satisfactory Modding dev team.
Thank you to everyone who has written code for this project!
Thank you to everyone who has written code for this project!
3 changes: 3 additions & 0 deletions cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,14 @@
"words": [
"Borketh",
"dberrors",
"Feyko",
"FICSIT",
"libpq",
"Mircea",
"owoize",
"pgadmin",
"pyenv",
"pyproject",
"virtualenv"
],
// flagWords - list of words to be always considered incorrect
Expand Down
Loading