seems to be the last RC - this app is done - so am I
This commit is contained in:
parent
1506201913
commit
f5b184fe54
37 changed files with 1932 additions and 661 deletions
185
README.md
185
README.md
|
@ -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)
|
||||
|
||||

|
||||
|
||||
|
@ -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 you’d 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
|
||||
|
||||
[](https://ko-fi.com/nocci)
|
||||
---
|
||||
|
||||
## 💬 Contribute
|
||||
|
||||
Contributions are welcome:
|
||||
|
||||
- Report bugs
|
||||
- Suggest features
|
||||
- Submit Pull Requests
|
||||
|
||||
---
|
||||
|
||||
## 🪙 Support
|
||||
|
||||
Like the project? You can support me:
|
||||
|
||||
[](https://ko-fi.com/nocci)
|
||||
[](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!**
|
Loading…
Add table
Add a link
Reference in a new issue