La aplicación se ejecutará y programará el inicio del servidor Exaroton a la hora especificada en la zona horaria configurada. Además, enviará una notificación a la URL del webhook especificado cuando el servidor se inicie.
Important
- Python 3.10 o más reciente 🐍
- Una cuenta de Exaroton 🌐
- Docker 🐳 (opcional)
- 🚀 Planificador de Servidor Exaroton
- 📋 Requisitos
- ⭐ Ejecución Directa del Script
- 🐳 Ejecución con Docker
- 🌱 Explicación de Variables de Entorno
- 🤝 Contribuciones
- 📄 Licencia
-
Clona el repositorio:
git clone https://github.com/sergisvk/exaroton-reset.git cd exaroton-reset
-
Crea un archivo
.env
en el directorio raíz del proyecto y agrega las siguientes variables de entorno:TOKEN= TIMEZONE=Europe/Madrid WEBHOOK_URL= CRON_SCHEDULE_START="0 6 * * *" # Inicia el servidor a las 6:00 AM CRON_SCHEDULE_STOP="0 22 * * *" # Detiene el servidor a las 10:00 PM ID_SERVER="" LANGUAGE=""
Note
Haz clic aquí para ver la explicación de cada variable de entorno.
-
Instala las dependencias:
pip install -r requirements.txt
-
Ejecuta el script:
python main.py
-
Clona el repositorio:
git clone https://github.com/sergisvk/exaroton-reset.git cd exaroton-reset
-
Crea un archivo
.env
en el directorio raíz del proyecto y agrega las siguientes variables de entorno:TOKEN= TIMEZONE=Europe/Madrid WEBHOOK_URL= CRON_SCHEDULE_START="0 6 * * *" # Inicia el servidor a las 6:00 AM CRON_SCHEDULE_STOP="0 22 * * *" # Detiene el servidor a las 10:00 PM ID_SERVER="" LANGUAGE="es-ES"
Note
Haz clic aquí para ver la explicación de cada variable de entorno.
- Construye la imagen de Docker y ejecuta el contenedor:
docker build -t exaroton-reset . docker run --env-file .env exaroton-reset
Tip
En mi opinión, esta es la mejor manera de ejecutar el contenedor usando Docker Compose.
-
Crea un archivo
docker-compose.yml
en el directorio raíz del proyecto con el siguiente contenido:version: '3.8' services: exaroton-reset: image: ghcr.io/sergisvk/exaroton-reset:latest environment: - TOKEN=${TOKEN} - TIMEZONE=${TIMEZONE} - WEBHOOK_URL=${WEBHOOK_URL} - ID_SERVER=${ID_SERVER} - CRON_SCHEDULE_START=${CRON_SCHEDULE_START} - CRON_SCHEDULE_STOP=${CRON_SCHEDULE_STOP} - LANGUAGE=${LANGUAGE} restart: unless-stopped
-
Ejecuta el siguiente comando para iniciar el contenedor: Otra forma de ejecutar el contenedor usando Docker Compose es pasar el archivo
.env
en la secciónenvironment
del archivodocker-compose.yml
.version: '3.8' services: exaroton-reset: image: ghcr.io/sergisvk/exaroton-reset:latest env_file: - .env restart: unless-stopped
Esto iniciará el contenedor utilizando la última imagen publicada en el Registro de Contenedores de GitHub y las variables de entorno definidas en el archivo .env
.
-
TOKEN
: Este es el token de la API de Exaroton que se utiliza para autenticar las solicitudes a la API de Exaroton. Debes obtener este token desde tu cuenta de Exaroton. -
TIMEZONE
: La zona horaria en la que deseas programar el inicio del servidor. Debe estar en un formato tz reconocido (por ejemplo,Europe/Madrid
). -
WEBHOOK_URL
: La URL del webhook donde se enviarán las notificaciones. Esto puede ser una URL de webhook de Discord u otro servicio que acepte webhooks. -
CRON_SCHEDULE_START
: El cronograma para iniciar el servidor. En este caso, está configurado para iniciar el servidor todos los días a las 6:00 AM ("0 6 * * *"
). -
CRON_SCHEDULE_STOP
: El cronograma para detener el servidor. En este caso, está configurado para detener el servidor todos los días a las 10:00 PM ("0 22 * * *"
). -
ID_SERVER
: El ID de tu servidor Exaroton. Este ID es único para cada servidor y se utiliza para identificar el servidor que deseas iniciar. -
LANGUAGE
: El idioma en el que se enviarán las notificaciones. Los idiomas disponibles sonen-UK
,es-ES
,fr-FR
,pt-PT
.
El formato cron se utiliza para programar tareas en intervalos específicos. La sintaxis de una expresión cron es la siguiente:
* * * * *
| | | | |
| | | | +---- Día de la semana (0 - 7) (Domingo a Sábado, donde 0 y 7 son Domingo)
| | | +------ Mes (1 - 12)
| | +-------- Día del mes (1 - 31)
| +---------- Hora (0 - 23)
+------------ Minuto (0 - 59)
Cada campo puede contener uno o más valores, separados por comas.
Los valores pueden ser números específicos, rangos de números o caracteres especiales como *
(cualquier valor), /
(incrementos) y -
(rangos).
Las contribuciones son bienvenidas. Por favor, abre un issue o un pull request para discutir cualquier cambio que desees realizar.
Este proyecto es mantenido por SergiSvK. Si encuentras este proyecto útil, considera hacer una donación.
Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para obtener más información.