Pokémon Absolute is an online text-based Pokémon RPG, comprised of numerous features adapted from the official Pokémon games, as well as entirely new features that enhance the playing experience of Pokémon.
Come join our comfy community over on Discord!
- Table of Contents
- About The Project
- Getting Started
- Setting The Root User's MySQL Password
- Contributing
- License
- PHP
- Node.js
- JavaScript
- TypeScript
- MySQL
- Socket.io
- MariaDB
- Linux
- CI/CD
- xDebug
Absolute has been developed from the ground up with love, and thus comes with a wide variety of features, such as:
- Dedicated Battles
- Open World Mapping
- Come Together With Clans
- Real Time In-Game Chat
- Live Trading
- Staff Panel
You may read about Absolute's features in further detail in our FEATURES.md documentation.
This project spins up Docker containers to set up the environment, so you will need that installed and configured on the machine that you're setting up this project on.
Note
It is possible to set-up this project without Docker, but the steps to do so are not currently documented.
Clone the repository to the necessary directory.
If you would like to also install Absolute's chat system and discord bot, clone this repository recursively. If you do not want them, do not clone it recursively.
git clone --recursive https://github.com/Toxocious/Absolute.git
Once you have Docker installed and have cloned this repository, all you need to do is run the ./start.sh script inside of your terminal.
You can do so as such:
Windows
bash ./start.sh
Linux/MacOS
./start.sh
This script does a few things in order to set-up the game on your machine:
- Generates SSL certificates
- Builds all necessary Docker containers
- Sets up your database by running all necessary migrations
If you're intending on running this project on a dedicated server with your own domain name, you will need to manually set the domain name for the SSL certificates. This can be done in ./certbot/generate.sh.
A number of flags are included with the start script:
-b
will force Docker to build even if the current commit hasn't changed-c
will force Docker to build without using cached images-v
will give you verbose messages during the SQL migration process
A ./shutdown.sh script is also included for safely shutting down the Docker environment and should be always be used.
Once you have successfully built all Docker containers, you can access PHPMyAdmin via https://localhost/db/ when the environment is running.
Note
The leading / is necessary, otherwise the page will fail to load necessary resources.
The source code used for Absolute's chat system can be found HERE and includes a separate, in-depth README with set-up documentation.
Note
Docker has not yet been configured to set-up the chat system for you, but will in a future update.
The source code used for Absolute's Discord Bot can be found HERE and includes a separate, in-depth README with documentation regarding included features.
Absolute's docker configuration includes the necessary dockerfile to automatically build and run the Discord bot for you.
Absolute uses a continue integration and deployment pipeline to automatically sync the repository main
branch with the remote server.
We used to use a CI/CD pipeline through Gitlab to synchronize our code with a remote server, but since moving to Github and using Docker for development, we do not currently have a working Github CI/CD workflow configuration.
Note
This project does not yet dedicated hosting and thus doesn't have a valid github workflow configuration.
Important
When you first setup Absolute, the root MySQL password is an empty string. It is highly suggested that you change this to a very secure password with the following CLI command, where 'NEW_PASSWORD'
is the password that you want the root MySQL account to have.
docker exec -it absolute-mysql bash
mariadb -u root -p'' password 'NEW_PASSWORD'
Do make sure to update the MYSQL_ROOT_PASSWORD
.env
value to reflect the new password that you've set.
If you're interested in contributing to Absolute, please check out CONTRIBUTING.md for more information.
This project is licensed under MIT.
For more information about the license, check out the LICENSE.