<div align="center">
<img src="ghostforge.png" alt="ghostforge Logo">

# ghostforge

ghostforge manages **false identity information** for privacy prudent persons.

tl;dr it's a fancy DB frontend with sensible design, tailored features, and a nice UX.<br/>

[Deployment](#deployment) •
[Frequently Asked Questions](#faq) •
[Contributing](#contributing) •
[License](#license)
</div>

## Deployment

Installation instructions are only provided for `docker`-based deployment. For manual deployment, you'll need to set environment variables (see `.env`) for database access before running `ghostforge` yourself.

### using docker
You'll need `docker-compose` installed or you can convert the contents of `docker-compose.yml` into `docker run` commands yourself. Install and run `ghostforge` with something like:

```bash
git clone https://github.com/darrylnixon/ghostforge.git && \
cd ghostforge && \
cp .env.sample .env && \
PW=$(/usr/bin/env python3 -c "import secrets; print(secrets.token_urlsafe(32))") /bin/bash -c 'sed -i "" "s/^POSTGRES_PASSWORD=.*/POSTGRES_PASSWORD=$PW/" .env' && \
JWT=$(/usr/bin/env python3 -c "import secrets; print(secrets.token_urlsafe(32))") /bin/bash -c 'sed -i "" "s/^GHOSTFORGE_JWT_SECRET=.*/GHOSTFORGE_JWT_SECRET=$JWT/" .env';
docker-compose up --detach --build;
docker exec --interactive --tty ghostforge ghostforge_adduser <username> <email> --superuser;
```

Follow the prompts to create an administrator user. Assuming you didn't change the default port, browse to [http://localhost:1337/](http://localhost:1337/) to begin using `ghostforge` with your new credentials.

## FAQ

**What problem does ghostforge solve?**

TODO

**What's your roadmap?**

TBD

**Why did you select MIT? You use GPLv3 in other projects.**

While GPLv3 still gives you the right to use, modify, and share this code, I know `ghostforge` would be useful to researchers and enthusiasts that need to tailor it to niche, particular, or sensitive use cases. Recognizing this, MIT seemed the best fit.

## Contributing

If you would like to contribute to this project, feel free to submit a pull request or open an issue on GitHub.

This tool was written as part of my coursework for CSC 842 - Security Tool Development at Dakota State University. Consequently, I may choose not to maintain this tool beyond the length of the course, but have selected a license that enables open contributions in any case.

## License

This project is licensed under the MIT License. See the `LICENSE` file for details.
