Update mise config

This commit is contained in:
2025-10-12 18:10:18 +03:00
parent d7656e7675
commit 2aa8dee019
2 changed files with 75 additions and 37 deletions

100
README.md
View File

@@ -17,45 +17,91 @@ The system consists of:
- **Spring Boot**: Kotlin-based backend with dependency injection - **Spring Boot**: Kotlin-based backend with dependency injection
## Setup ## Setup
1. Create `.env` file with:
```properties
# Telegram Bot Configuration
BOT_TOKEN=your_bot_token
FORWARD_CHAT_ID=your_forward_chat_id
APPROVER_USER_IDS=id1,id2,id3
# S3 Configuration (for production) The application is configured via Spring Boot properties.
S3_ACCESS_KEY_ID=your_key
S3_SECRET_ACCESS_KEY=your_secret ### Local Development
S3_BUCKET=your_bucket_name
1. Copy the sample local configuration file:
```bash
cp src/main/resources/application-local.properties.dist src/main/resources/application-local.properties
``` ```
2. For local development: 2. Edit `src/main/resources/application-local.properties` and fill in your bot details:
```properties
# Telegram Bot Configuration
bot.token=your_bot_token
bot.forward-chat-id=your_forward_chat-id
bot.approver-user-ids=id1,id2,id3
```
3. Run the application with the `local` profile active:
```bash ```bash
./gradlew bootRun --args='--spring.profiles.active=local' ./gradlew bootRun --args='--spring.profiles.active=local'
``` ```
In this mode, memes are stored in memory and are not persisted.
## Usage ### Production
1. Send a meme (image/video) to the Telegram bot
2. Reply with `this` or `!soxok` to approve and upload For a production deployment (e.g., in Docker), you can provide configuration via environment variables or an `application.properties` file.
3. View the meme at `http://localhost:8080` (or your deployed URL)
**Example using environment variables:**
Spring Boot automatically maps environment variables (e.g., `BOT_TOKEN`) to application properties (e.g., `bot.token`).
## Deployment
### Docker
```bash ```bash
docker build -t memevizor . export BOT_TOKEN="your_bot_token"
docker run -d -p 8080:8080 memevizor export BOT_FORWARD_CHAT_ID="your_forward_chat_id"
export BOT_APPROVER_USER_IDS="id1,id2,id3"
export S3_ENDPOINT="https://s3.example.com"
export S3_REGION="us-east-1"
export S3_BUCKET="your_bucket_name"
export S3_ACCESS_KEY_ID="your_key"
export S3_SECRET_ACCESS_KEY="your_secret"
java -jar build/libs/memevizor-*.jar
``` ```
### Cloud (Heroku/AWS/etc) **Example `application.properties` file:**
1. Set environment variables
2. Deploy with your preferred provider
## Contributing ```properties
Contributions welcome! Please: # Telegram Bot Configuration
1. Fork the repository bot.token=your_bot_token
2. Create a feature branch bot.forward-chat-id=your_forward_chat_id
3. Submit a pull request bot.approver-user-ids=id1,id2,id3
# S3 Configuration
s3.endpoint=https://s3.example.com
s3.region=us-east-1
s3.bucket=your_bucket_name
s3.access-key-id=your_key
s3.secret-access-key=your_secret
```
## Usage
1. Send a meme (image or video) to the Telegram bot.
2. To approve and upload the meme, reply to the message with `this` or `!soxok`.
3. View the latest meme at `http://localhost:8080` (or your deployed URL).
## Deployment
### Docker
1. Run the container with environment variables:
```bash
docker run -d \
-e BOT_TOKEN='your_bot_token' \
-e BOT_FORWARD_CHAT_ID='your_forward_chat_id' \
-e BOT_APPROVER_USER_IDS='id1,id2,id3' \
-e S3_ENDPOINT='https.s3.example.com' \
-e S3_REGION='us-east-1' \
-e S3_BUCKET='your_bucket_name' \
-e S3_ACCESS_KEY_ID='your_key' \
-e S3_SECRET_ACCESS_KEY='your_secret' \
ghcr.io/pischule/memevizor:latest
```
## License ## License
GNU GPLv3 GNU GPLv3

View File

@@ -1,14 +1,6 @@
[tools] [tools]
java = "temurin-21" java = "temurin-21"
[tasks.release]
description = 'Build and push docker image'
run = [
'./gradlew build',
'docker build -t memevizor:latest .',
'docker pussh memevizor:latest apps0.pischule.com'
]
[tasks.fmt] [tasks.fmt]
description = 'Fourmat source code' description = 'Fourmat source code'
run = './gradlew :spotlessApply' run = './gradlew :spotlessApply'