GameKeyManager/README.md

189 lines
5.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🔑 Game Key Manager 🔑
## 👋 Welcome! 👋
This project helps you keep track of your collected game keys.
No more confusion about whether a key is redeemed, gifted, or still unused now you have everything in one place, with search, status, and even automatic Steam cover images!
It's even possible to gift your keys via a unique website. Just edit the game to "Gifted" and you'll get a option to copy the on your overview page. (maybe HTTPS only)
(the link will also remain in the edit area)
![Screenshot](GameManager.png)
---
## ✨ Features ✨
- **Key Management:**
Enter your game keys, the corresponding game, platform, and maybe where you got the key.
- **Status Tracking:**
Mark keys as "Redeemed", "Gifted" or "Available" always know your status.
- **Shop URL & Steam Cover:**
Save the shop URL and (optionally) the Steam AppID. The app will automatically show the official Steam cover image if available.
- **Gift your Games:**
You can create a unique redeem/gift website, which will expire after 24h.
- **Multi-user:**
Each user manages their own keys.
- **Enable/Disable Registrations:**
Perfect if you want to run the Server just on your own (via .env file)
- **Search:**
Find games quickly with the search function.
- **Responsive UI:**
Works on desktop and mobile, with Dark Mode toggle.
- **Multi-language:**
Switch between English and German instantly*.
- **Import/Export (CSV / PDF -only export-):**
Easy export and import of your keys. (e.g. in case you have to start over)
- **Change Password:**
Change your Password on the fly.
- **Website Security:**
You can turn on/off CSRF and Secure Cookie via .env file.
- **Notifications:**
If you have key that have to be redeemed before a specific date. You can set up sending messages via, Pushover, Matrix and Gotify
- **No key data leaves your server!**
- **(Planned):**
- ~~Import/Export (CSV)~~
- ~~Redeem site with unique sharing link~~
---
## 🚀 Get Started! 🚀
## 1. **Clone the Repository (Option 1 or Option 2)**
### Option 1: Clone the main repository
```bash
git clone https://codeberg.org/nocci/GameKeyManager
cd steam-gift-manager
```
### Option 2: Clone from alternative repository (if option 1 fails)
```bash
git clone https://git.nocci.it/nocci/GameKeyManager
```
### 2. **Setup Docker**
Make sure you have [Docker](https://www.docker.com/) and [docker-compose](https://docs.docker.com/compose/) installed.
If not, the script will ask you what to do and can install Docker and docker-compose for you. (maybe not if you are running Arch)
### 3. **Initial Setup**
```bash
chmod +x setup.sh
./setup.sh
```
This script prepares all directories, configuration, and translation files.
### 4. **Build and Start the App**
```bash
cd steam-gift-manager/
docker-compose build --no-cache
docker-compose up -d
```
### 5. **Edit your .env file to your liking**
It's in your root folder of the installation!
```xml
# Security
SESSION_COOKIE_SECURE="True" (only works if you run this app via HTTPS)
CSRF_ENABLED="True"
```
**Important after any(!) change of the .env file!**
```bash
cd steam-gift-manager/
docker-compose down && docker-compose up -d --build
```
### 6. **Initialize and Edit Translations (Optional)**
```bash
./translate.sh
```
Edit the .po files in translations/de_DE/LC_MESSAGES/messages.po and en_US/LC_MESSAGES/messages.po
```bash
./translate.sh
cd steam-gift-manager/
docker-compose down && docker-compose up -d --build
```
### 7. **Open the App**
Go to [http://localhost:5000](http://localhost:5000) in your browser.
- Register your first user.
- Add your keys, shop URLs etc.
- Enjoy search, status, and automatic Steam cover images!
---
## 🛠️ Technology Stack 🛠️
- **Frontend:** Bootstrap 5, Jinja2 Templates ...
- **Backend:** Python 3, Flask, Flask-Babel, Flask-Login, Flask-SQLAlchemy, Apprise ...
- **Database:** SQLite (persisted in `data/`)
- **Containerization:** Docker, docker-compose
- **Translations:** Flask-Babel, editable `.po` files in `translations/`
## 🌍 Multi-language
- Switch between English and German using the dropdown in the navigation bar.
- All game and menu texts can be translated or individualized.
## 🔔 Notifications
- Send notifications if a game has to be redeemed by a specific date
- Switched from generic notifications to [Apprise](https://github.com/caronc/apprise) - have a look into the .env file
- 48 hours before you are running out of time the app will send you a notice to your services
---
## 🪙 Do you this project? 🪙
If youd like to support itme, you can make a donation here:
[![Ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/nocci)
[![Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/nocci/donate)
Thank you!
---
## 🙌 Contribute! 🙌
This project is open source!
- **Bug Reports:** Please report bugs as Issues.
- **Feature Requests:** Suggest new features!
- **Pull Requests:** Submit your code changes!
// **only possible after Forgejo opens for federation** \\\
---
## 📜 License 📜
This project is licensed under the [Apache License 2.0](LICENSE).
---
## 💖 Acknowledgements 💖
A big thank you to everyone who supports and contributes to this project!
---
**Enjoy your organized Game key collection!** 🚀