https://github.com/dan0xe/kunna
Go-based synchronization tool
https://github.com/dan0xe/kunna
tool
Last synced: 8 months ago
JSON representation
Go-based synchronization tool
- Host: GitHub
- URL: https://github.com/dan0xe/kunna
- Owner: Dan0xE
- License: mit
- Archived: true
- Created: 2023-07-20T06:33:04.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-01-19T14:14:06.000Z (over 2 years ago)
- Last Synced: 2025-01-29T00:41:34.073Z (over 1 year ago)
- Topics: tool
- Language: Go
- Homepage:
- Size: 18.6 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Kunna - GitLab to BunnyCDN Synchronization
Kunna is a Go-based synchronization tool that mirrors our projects main branch (regarded as the production branch) from our GitLab instance to our BunnyCDN instance. This makes our projects available for download via our installer.
## Getting Started
Clone this repository to any location on your computer.
```bash
git clone https://github.com/aeronautical-studios/kunna.git
```
## Prerequisites
You will need Go installed on your computer to build and run the application. The Go version used for development is Go ``1.19.3``.
## Configuration
Kunna uses a ``config.json`` file for its configuration. Here is an example:
```json
{
"DiscordWebHook": "",
"TempStoragePath": "",
"GitlabInstanceUrl": "",
"GitLabAPIKey": "",
"BunnyCDNStorageUrl": "",
"BunnyCDNStoragePullZone": "",
"BunnyCDNAPIKey": "",
"BunnyCDNApiUrl": ""
}
```
**Note:** Please replace the empty strings with your actual values.
## How to run Kunna
To run Kunna, use the command:
```bash
go run .
```
To build an executable, use the command:
```bash
go build
```
## Error logging
Kunna includes a logging system that outputs to a file. Log files are named ``log_.log.`` If an error occurs, an embed will be sent to a Discord channel via a webhook (url specified in the config.json).\
## Temporary Storage
Kunna uses temporary storage to process files before sending them to the BunnyCDN. The location of this storage is specified in the ``config.json`` file.
## File Comparison
File comparison is used to decide which files need to be uploaded or deleted from BunnyCDN. The decision is based on comparing hashes of files (generated by kushn) from GitLab and BunnyCDN.
## Synchronization
Kunna will automatically sync repositories at intervals. The sync operation consists of fetching repositories from GitLab, comparing files, and performing necessary upload or delete operations on BunnyCDN.
## Reporting Bugs
If you encounter any bugs or issues, feel free to open an issue in this repository.
## Contributing
We welcome any form of contribution. Please first discuss the change you wish to make via an issue.
## License
Please see the ``LICENSE`` file for details on the license.
## Contact
For any inquiries or support, please contact us via dev@aeronauticalstudios.com.
## Acknowledgments
- The Go team for their wonderful programming language
- The GitLab team for their awesome platform
- The BunnyCDN team for their robust CDN service