seems to be the last RC - this app is done - so am I

This commit is contained in:
nocci 2025-05-09 14:34:33 +02:00
parent 1506201913
commit f5b184fe54
37 changed files with 1932 additions and 661 deletions

185
README.md
View file

@ -5,9 +5,7 @@
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)
You can even gift your keys via a unique 24-hour website link just mark a game as "Gifted" and copy the link from your overview. (HTTPS recommended)
![Screenshot](GameManager.png)
@ -16,70 +14,72 @@ It's even possible to gift your keys via a unique website. Just edit the game to
## ✨ Features ✨
- **Key Management:**
Enter your game keys, the corresponding game, platform, and maybe where you got the key.
Enter your game keys, platform, source, and more.
- **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:**
Mark keys as "Redeemed", "Gifted", or "Available".
- **Steam Cover & Shop Info:**
Provide the Steam AppID and get the official game cover. Add shop URLs too.
- **Game Descriptions & Prices:**
Automatically fetch game descriptions, current best prices, and historical lows from [IsThereAnyDeal](https://isthereanydeal.com/) (API key required).
- **Gifting:**
Create a one-time gift link for each game that expires after 24 hours.
- **Search Functionality:**
Quickly find games with an integrated search bar.
- **Multi-user Support:**
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.
- **User Roles:**
The first registered user becomes an admin automatically.
- **Admin Area:**
Admins can reset passwords, delete users, and view audit logs.
- **Audit Logs:**
Track user logins, password resets, and deleted accounts.
- **Registration Toggle:**
Enable or disable user registration via the `.env` file.
- **Responsive UI:**
Works on desktop and mobile, with Dark Mode toggle.
Fully functional on desktop and mobile with Dark Mode support.
- **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~~
Switch between English and German on the fly.
- **Import/Export (CSV, PDF export):**
Import/export your game keys easily.
- **Password Management:**
Users can change their passwords directly.
- **Notifications:**
Get alerts for expiring keys via Gotify, Matrix, or Pushover.
- **Security Settings:**
Toggle CSRF protection and secure cookies in `.env`.
- **Self-hosted:**
No data leaves your server.
---
## 🚀 Get Started! 🚀
## 🚀 Get Started
## 1. **Clone the Repository (Option 1 or Option 2)**
### Option 1: Clone the main repository
### 1. Clone the Repository
```bash
git clone https://codeberg.org/nocci/GameKeyManager
cd steam-gift-manager
```
### Option 2: Clone from alternative repository (if option 1 fails)
Alternative:
```bash
git clone https://git.nocci.it/nocci/GameKeyManager
```
### 2. **Setup Docker**
### 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)
Make sure Docker and docker-compose are installed.
If not, the setup script can guide you (Arch-based distros may vary).
### 3. **Initial Setup**
### 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**
### 4. Build and Start the App
```bash
cd steam-gift-manager/
@ -87,102 +87,81 @@ docker-compose build --no-cache
docker-compose up -d
```
### 5. **Edit your .env file to your liking**
### 5. Configure `.env` File
It's in your root folder of the installation!
Adjust your settings:
```xml
# Security
SESSION_COOKIE_SECURE="True" (only works if you run this app via HTTPS)
```env
SESSION_COOKIE_SECURE="True" # Only works with HTTPS
CSRF_ENABLED="True"
ITAD_API_KEY="your_api_key" # Optional, for price data
```
**Important after any(!) change of the .env file!**
Apply changes after editing:
```bash
cd steam-gift-manager/
docker-compose down && docker-compose up -d --build
```
### 6. **Initialize and Edit Translations (Optional)**
### 6. Translate (optional)
```bash
./translate.sh
```
Edit the .po files in translations/de_DE/LC_MESSAGES/messages.po and en_US/LC_MESSAGES/messages.po
Edit the `.json` files in `translations/`, then restart:
```bash
./translate.sh
cd steam-gift-manager/
docker-compose down && docker-compose up -d --build
```
### 7. **Open the App**
### 7. Access 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!
Visit [http://localhost:5000](http://localhost:5000)
Register the first user this account becomes the admin!
---
## 🛠️ Technology Stack 🛠️
## 🔔 Notifications (optinal)
- **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
- Reminders for expiring keys (48h notice)
- Pushover, Matrix, Gotify and more are supported through AppRise
- Configurable via `.env`
---
## 🪙 Do you this project? 🪙
## 🛠️ Tech Stack
If youd like to support itme, you can make a donation here:
- **Frontend:** Bootstrap 5, Jinja2, ...
- **Backend:** Python 3, Flask, Flask-SQLAlchemy, ...
- **Database:** SQLite
- **Container:** Docker, docker-compose
[![Ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/nocci)
---
## 💬 Contribute
Contributions are welcome:
- Report bugs
- Suggest features
- Submit Pull Requests
---
## 🪙 Support
Like the project? You can support me:
[![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!
---
## 📜 License
Licensed under [Apache License 2.0](LICENSE).
---
## 🙌 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!** 🚀
**Enjoy managing your game collection!**