https://github.com/jamie-legg/syntron.uk
Scripts for tron server admin
https://github.com/jamie-legg/syntron.uk
armagetronad express nextjs14 shell-scripts
Last synced: 2 months ago
JSON representation
Scripts for tron server admin
- Host: GitHub
- URL: https://github.com/jamie-legg/syntron.uk
- Owner: jamie-legg
- Created: 2024-03-31T20:37:43.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-06T21:12:01.000Z (over 1 year ago)
- Last Synced: 2025-08-09T23:51:03.723Z (11 months ago)
- Topics: armagetronad, express, nextjs14, shell-scripts
- Language: TypeScript
- Homepage: https://syntron.uk
- Size: 646 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Syntron Documentation
This documentation provides an overview of the architecture, as well as instructions for setting up and running the Syntron application, and basic documentation of the provided scripts.
## Contents
- [Syntron Documentation](#syntron-documentation)
- [Contents](#contents)
- [Architecture Overview](#architecture-overview)
- [Scripts](#scripts)
- [Setup](#setup)
- [Prerequisites](#prerequisites)
- [Running the Application](#running-the-application)
- [ELK Stack](#elk-stack)
- [Development](#development)
- [Contributing](#contributing)
- [Support](#support)
## Architecture Overview
```mermaid
graph TD;
subgraph Web
auth_api[Auth API]
web_ui[Web UI]
end
subgraph Game
tst[TST Server]
pub_sumo[Pub Sumo Server]
watcher[Watcher]
end
subgraph database
postgres[Postgres]
end
web_ui --> auth_api
auth_api --> postgres
tst --> watcher
pub_sumo --> watcher
watcher --> auth_api
```
- **Web UI**: The front-end user interface, written in TypeScript, interacts with the Auth API for authentication processes. It's a Next.js application that uses React for rendering, and Tailwind CSS for styling.
- **Auth API**: Also written in TypeScript, this handles all authentication requests and interacts directly with the Postgres database. Express.js is used as the server framework.
- **Watcher**: A TypeScript service that monitors interactions between the TST and Pub Sumo servers and communicates with the Auth API.
- **TST Server & Pub Sumo Server**: Backend servers responsible for core game logic and public summaries respectively. Shoutout to my fellow insomniac Light (https://lightron.org/) for the docker image.
- **Postgres**: The database used for storing user and authentication data.
## Scripts
The following scripts are located in the `scripts` directory of the project.
## Setup
The application is containerized using Docker Compose. Below are the steps to set up and run the application.
### Prerequisites
- Docker
- Docker Compose
- Node.js (for running local TypeScript setups if necessary)
### Running the Application
1. Clone the repository to your local machine.
2. Navigate to the root of the project where the `docker-compose.yml` file is located.
3. Ensure you have a `.env` file in the root directory with all the necessary environment variables set.
4. Run the following command to start all services:
```
docker-compose up
```
### ELK Stack
The application uses an ELK (Elasticsearch, Logstash, Kibana) stack for logging purposes.
- **Access Logs**: Visit \`http://localhost:5601\` to access Kibana and view the logs.
## Development
- When developing locally, ensure all TypeScript services (Web UI, Auth API, Watcher) are compiled and up-to-date.
- Use the provided Docker setup to maintain consistency in development and production environments.
## Contributing
Contributions are welcome! Please fork the repository and submit pull requests with your proposed changes.
## Support
For any additional support or queries, please open an issue in the repository or contact me at legg.jamie@gmail.com.