2023-11-23 17:26:07 +01:00
# GO ical ntfy reminder
2023-11-23 14:04:44 +01:00
2023-11-23 17:26:07 +01:00
This is a simple Go application that does iCalendar files (.ics) analyzes and sends notifications by ntfy based on the events in these iCalendar files.
2023-11-23 14:04:44 +01:00
## Prerequisites
Before you begin, ensure you have the following installed:
- [Docker ](https://docs.docker.com/get-docker/ )
- [Docker Compose ](https://docs.docker.com/compose/install/ )
## Getting Started
1. **Clone the repository:**
```bash
2023-11-23 17:26:07 +01:00
git clone https://code.brothertec.eu/simono41/go-ical-ntfy-reminder.git
2023-11-23 14:04:44 +01:00
```
2. **Create an environment variables file:**
Create a file named `.env` in your project directory. Fill this file with the required environment variables:
```env
2023-11-23 18:38:35 +01:00
TO_EMAIL=recipient@example.com (optional)
2023-11-23 17:26:07 +01:00
NTFY_AUTH=echo "Basic $(echo -n 'testuser:fakepassword' | base64)"
NTFY_HOST=https://ntfy.sh/alerts
2023-11-23 14:04:44 +01:00
ICS_DIR=/path/to/ics/files
```
Customize the values according to your application.
3. **Build and run the Docker container:**
```bash
2023-11-23 17:51:17 +01:00
docker compose up --build
2023-11-23 14:04:44 +01:00
```
This command uses Docker Compose to build and run the container, loading environment variables from the `.env` file.
4. **Access your application:**
Open your web browser and go to [http://localhost:8080 ](http://localhost:8080 ).
## Customizing the Docker Image
- If your application uses additional environment variables, add them to the `.env` file.
- Customize the Dockerfile or docker-compose.yml if needed.
2023-11-23 17:51:17 +01:00
## Running as a Cronjob
To run your application as a daily cronjob at 6 AM, add the following cronjob entry:
```cron
0 6 * * * docker compose -f /opt/containers/mail-reminder/docker-compose.yml up --build --exit-code-from go-app
```
This cronjob will execute the Docker Compose command daily at 6 AM.
2023-11-23 14:04:44 +01:00
## Contributing
If you'd like to contribute, please fork the repository and create a pull request. Feel free to open an issue if you encounter any problems or have suggestions.
## License
This project is licensed under the MIT License - see the [LICENSE ](LICENSE ) file for details.