{"id":20016631,"url":"https://github.com/rafaelclaumann/dockerized-otserver","last_synced_at":"2026-02-16T14:03:26.294Z","repository":{"id":150326322,"uuid":"623122154","full_name":"RafaelClaumann/dockerized-otserver","owner":"RafaelClaumann","description":"Automação para iniciar um Open Tibia Server(otserver) ","archived":false,"fork":false,"pushed_at":"2025-04-19T21:39:47.000Z","size":23288,"stargazers_count":18,"open_issues_count":2,"forks_count":6,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-19T22:54:44.829Z","etag":null,"topics":["docker","mmorpg","opentibiabr","otserv12x","otservbr-global","otserver","shell","tibia"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RafaelClaumann.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-04-03T18:34:47.000Z","updated_at":"2025-04-19T21:39:51.000Z","dependencies_parsed_at":"2024-08-10T15:08:33.546Z","dependency_job_id":null,"html_url":"https://github.com/RafaelClaumann/dockerized-otserver","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RafaelClaumann%2Fdockerized-otserver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RafaelClaumann%2Fdockerized-otserver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RafaelClaumann%2Fdockerized-otserver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RafaelClaumann%2Fdockerized-otserver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RafaelClaumann","download_url":"https://codeload.github.com/RafaelClaumann/dockerized-otserver/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252408328,"owners_count":21743095,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","mmorpg","opentibiabr","otserv12x","otservbr-global","otserver","shell","tibia"],"created_at":"2024-11-13T08:12:20.892Z","updated_at":"2026-02-16T14:03:26.229Z","avatar_url":"https://github.com/RafaelClaumann.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dockerized Tibia OTserver\n\n## O que tem nesse repositório?\nNeste repositório você encontrará scripts shell, arquivos SQL, yaml e PHP para iniciar um ambiente docker e executar um OTserver(_open tibia server_).\n\n## Requisitos\n- docker\n- docker compose\n- unzip\n- wget\n- notepad++\n- tibia client 12x\n\n## Quatro containers são utilizados:\n- OTserver(_ubuntu open tibia server_)\n- Banco de dados(_mysql_)\n- Gerenciador de banco de dados(_phpmyadmin_)\n- Servidor web(_php+apache_)\n\n## Inico rápido\n- Para realizar o download dos arquivos do servidor e inicia-lo, execute o script `start.sh` com o parâmetro `-d`. As execuções subsequentes de `start.sh` não precisarão do parâmetro `-d`.\n- Gerenciamento do banco de dados através do `phpMyAdmin` em http://localhost:9090 utilizando as credenciais `root`/`noob` ou `otserv`/`noob`.\n- Utilize um Tibia Client 12x([download](https://github.com/opentibiabr/canary/releases/tag/v2.0.0)) para acessar o servidor. É preciso alterar o valor das chaves `loginWebService` e `clientWebService` no arquivo `127.0.0.1_client.exe`([tutorial](https://github.com/RafaelClaumann/dockerized-otserver?tab=readme-ov-file#configurando-tibia-client)).\n- Para fazer login no Tibia Client 12x utilize as credenciais `@god`/`god` ou `@a`/`1`.\n- Para encerrar os containers(otserver, mysql, phpmyadmin, php+apache) execute o comando `docker-compose down`.\n\n## Demonstração iniciando servidor\n![](https://github.com/RafaelClaumann/dockerized-otserver/blob/main/01_tutorial_start_server.gif)\n\n## Demonstração configurando client e login\n![](https://github.com/RafaelClaumann/dockerized-otserver/blob/main/02_tutorial_config_tibia_client.gif)\n\n## Arquivos do repositório\nNo script `start.sh` são definidas as credenciais do banco de dados e as configurações de rede do Docker, em poucos casos será preciso alterar as credenciais ou configurações de rede. O script também é responsável por iniciar os containers(otserver, mysql, phpmyadmin, php+apache) com o comando `docker-compose up -d`.\n\nParâmetros disponiveis para iniciar o script `start.sh`:\n| parâmetro\t\t\t| descrição\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t|\n|-------------------|-------------------------------------------------------------------------------------------------------|\n| -d ou --download\t| Realiza o download e extração do servidor [canary](https://github.com/opentibiabr/canary) na pasta `server/`. Se os arquivos do servidor não forem encontrados na pasta `server/` e você não fornecer o parâmetro -d ou --download o script não funcionará.\t|\n\nO arquivo `login.php` é uma simplificação do login.php encontrado no [MyAAC](https://github.com/otsoft/myaac/blob/master/login.php).\nEssa simplificação facilita a autenticação no servidor/banco de dados e evita a instalação e configuração de um AAC(_Gesior2012 ou MyAAC_).\n\nDurante o login, o Tibia Client 12x realiza requisições nas URLs `loginWebService` e `clientWebService` que são configuradas no próprio Tibia Client([tutorial](https://github.com/RafaelClaumann/dockerized-otserver/blob/main/README.md#alterando-url-de-autentica%C3%A7%C3%A3o-no-tibia-client)).\n\nAs URLs configuradas no Tibia Client 12x levam até o arquivo `login.php` do servidor web(php+apache) que por sua vez se comunicará com o banco de dados(MySQL) para autenticar o cliente. O servidor web não tem interface gráfica, só é possível criar contas e personagens no banco de dados usando comandos SQL.\n\nO schema do banco de dados e algumas contas são criados de forma automática na inicialização do container `MySQL`, veja os arquivos [00_schema.sql](https://github.com/RafaelClaumann/dockerized-otserver/blob/main/sql/00_schema.sql) e [01_data.sql](https://github.com/RafaelClaumann/dockerized-otserver/blob/main/sql/01_data.sql).\n\nAs contas listadas abaixo são criadas na inicialização do banco de dados(MySQL).\n| email \t| password \t| personagens                                                      \t|\n|-------\t|----------\t|------------------------------------------------------------\t|\n| @god    \t| god       | GOD, paladin/sorcerer/druid/knight sample \t\t\t|\n| @a    \t| 1        \t| Paladin(800) Sorcerer(800) Druid(800) Knight(800) \t\t|\n| @b    \t| 1        \t| ADM1                                                       \t|\n| @c    \t| 1        \t| ADM2                                                       \t|\n\nO `docker-compose.yaml` contém a declaração dos containers(otserver, mysql, phpmyadmin, php+apache) que são iniciados quando o script `start.sh` é executado. Os campos no formato `${xxxx}` em `docker-compose.yaml` recebem os valores das variaveis exportadas no script `start.sh`.\n\nO diagrama abaixo exibe as variáveis de ambiente declaradas no script `start.sh` e onde elas são utilizadas.\n\n![Diagrama sem nome](https://github.com/RafaelClaumann/dockerized-otserver/blob/main/03_uso_variaveis_de_ambientes.jpg)\n\n## Configurando Tibia Client\nSupondo que o [download](https://github.com/opentibiabr/canary/releases/tag/v2.0.0) do Tibia Client 12x ja tenha sido realizado e o [notepad++](https://notepad-plus-plus.org/downloads/) esteja instalado.\n\nNavegue até a pasta `bin` do Tibia Client, clique com o botão direito do mouse sob o arquivo `127.0.0.1_client.exe`, abrir com notepad++ e localize as palavras `loginWebService` e `clientWebService`.\n\nO valor atribuído a `loginWebService` e `clientWebService` deve ser igual a URL de autenticação exposta no container webserver(php+apache), ou seja, `http://127.0.0.1:8080/login.php`.\n\n- **Se** NOVA_URL **\u003e** URL_ORIGINAL **então** remova espaços ao final da URL para equilibrar o tamanho inicial do campo\n- **Se** NOVA_URL **\u003c** URL_ORIGINAL **então** adicione espaços ao final da URL para equilibrar o tamanho inicial do campo\n\nAntes x Depois:\n\n![image](https://github.com/RafaelClaumann/dockerized-otserver/assets/25152862/320c4143-a9fc-420b-9cdf-fc61f29b2503)\n\n![image](https://github.com/RafaelClaumann/dockerized-otserver/assets/25152862/a15ac925-b5ec-4b1b-9f0d-ceb1a474e9c1)\n\n[Tibia 11 Discussion(+Tutorial how to able to use it)](https://otland.net/threads/tibia-11-discussion-tutorial-how-to-able-to-use-it.242719/)\n\n[Cliente Tibia 12 com Notepad++](https://forums.otserv.com.br/index.php?/forums/topic/169530-cliente-tibia-12-com-notepad/\u0026tab=comments#comment-1255507)\n\n## Opcional - Gesior2012 ou myAAC\nOs AACs(Automatic Account Creator) citados são sites criados com aparencia e funcionalidades parecidas com as encontradas no site oficial do tibia.\n\nCaso queira instalar um dos AACs [Gesior2012](https://github.com/gesior/Gesior2012) ou [myAAC](https://github.com/otsoft/myaac) será preciso adicionar algumas extensões no container PHP.\n\nMais informações a respeito das extensões necessárias podem ser encontradas nos repositórios dos respectivos AACs.\n``` bash\n# Os comandos mostrados abaixo devem ser executados dentro do container PHP.\n# docker exec -it php bash\n#\nchmod -R 777 /var/www/*\napt update \u0026\u0026 \\\napt install libxml2-dev \\\n            libcurl4-openssl-dev \\\n            zlib1g-dev \\\n            libzip-dev \\\n            libluajit-5.1-dev -y\n\n# https://gist.github.com/hoandang/88bfb1e30805df6d1539640fc1719d12\ndocker-php-ext-install bcmath\ndocker-php-ext-install curl\ndocker-php-ext-install dom\ndocker-php-ext-install mysqli\ndocker-php-ext-install pdo\ndocker-php-ext-install pdo_mysql\ndocker-php-ext-install xml\ndocker-php-ext-install zip\napachectl restart\n```\n\nPara instalar o Gesior2012 é preciso inserir o endereço IP do gateway da rede docker em `site/install.txt`, enquanto no myAAC o endereço deve ser inserido em `site/install/ip.txt`.\n\nO endereço do gateway de rede pode ser obtido na varivel `DOCKER_NETWORK_GATEWAY` do arquivo `start.sh` ou através do comando `docker network inspect --format='{{range .IPAM.Config}}{{.Gateway}}{{end}}' otserver_otserver`.\n``` bash\n# instalacao myAAC, endereço IP em site/install/ip.txt\nrm -r site/config.local.php \u0026\u003e /dev/null  # removendo configuração de instalações anteriores\necho $DOCKER_NETWORK_GATEWAY \u003e site/install/ip.txt\n\n# instalacao Gesior2012, endereço IP em site/install.txt\necho $DOCKER_NETWORK_GATEWAY \u003e site/install.txt\n```\n\n## Links\n- [Tibia 11 Discussion(+Tutorial how to able to use it)](https://otland.net/threads/tibia-11-discussion-tutorial-how-to-able-to-use-it.242719/)\n- [Cliente Tibia 12 com Notepad++](https://forums.otserv.com.br/index.php?/forums/topic/169530-cliente-tibia-12-com-notepad/\u0026tab=comments#comment-1255507)\n- [Otserv Brasil: Tutoriais Infraestrutura](https://forums.otserv.com.br/index.php?/forums/forum/445-infraestrutura/)\n\n# Outras Informações\n\n## Listando as redes do docker\n``` bash\n$docker network list    \n    NETWORK ID     NAME                 DRIVER    SCOPE\n    bd83d906d3d1   bridge               bridge    local\n    2546338521e9   host                 host      local\n    42e631403bda   none                 null      local\n    0a96c09c01b1   opentibia_otserver   bridge    local\n\n$docker network inspect --format='{{range .IPAM.Config}}{{.Gateway}}{{end}}' opentibia_otserver\n    192.168.128.1\n\n$docker network inspect --format='{{range .IPAM.Config}}{{.Subnet}}{{end}}' opentibia_otserver\n    192.168.128.0/20\n```\n\n## MySQL\nEm algumas situações houveram erros ao logar no PhpMyAdmin e tive que executar as seguintes consultas no banco de dados\n``` sql\n# Create database and import schema\nmysql -u root -e \"CREATE DATABASE $DATABASE_NAME;\"\nmysql -u root -D \u003cDATABASE_NAME\u003e \u003c schema.sql\nmysql -u root -D \u003cDATABASE_NAME\u003e \u003c data.sql\n\n# Create user\nmysql -u root -e \"CREATE USER '\u003cMYSQL_USER\u003e'@localhost IDENTIFIED BY '\u003cMYSQL_PASSWORD\u003e';\"\nmysql -u root -e \"GRANT ALL PRIVILEGES ON *.* TO '\u003cMYSQL_USER\u003e'@'localhost' WITH GRANT OPTION;\"\nmysql -u root -e \"GRANT ALL PRIVILEGES ON *.* TO '\u003cMYSQL_USER\u003e'@'%' WITH GRANT OPTION\"\u003e\n\n#\u003e Make our changes take effect\nmysql -u root -e \"FLUSH PRIVILEGES;\"\n```\n\n## login.php\nRequestBody\n``` json\n{\n\t\"email\": \"@god\",\n\t\"password\": \"god\",\n\t\"stayloggedin\": true,\n\t\"type\": \"login\"\n}\n```\n\nResponseBody\n``` json\n{\n\t\"session\": {\n\t\t\"sessionkey\": \"@god\\ngod\",\n\t\t\"lastlogintime\": 0,\n\t\t\"ispremium\": true,\n\t\t\"premiumuntil\": 0,\n\t\t\"status\": \"active\",\n\t\t\"returnernotification\": false,\n\t\t\"showrewardnews\": false,\n\t\t\"isreturner\": true,\n\t\t\"fpstracking\": false,\n\t\t\"optiontracking\": false,\n\t\t\"tournamentticketpurchasestate\": 0,\n\t\t\"emailcoderequest\": false\n\t},\n\t\"playdata\": {\n\t\t\"worlds\": [\n\t\t\t{\n\t\t\t\t\"id\": 0,\n\t\t\t\t\"name\": \"OTServBR-Global\",\n\t\t\t\t\"externaladdress\": \"192.168.128.1\",\n\t\t\t\t\"externalport\": 7172,\n\t\t\t\t\"externaladdressprotected\": \"192.168.128.1\",\n\t\t\t\t\"externalportprotected\": 7172,\n\t\t\t\t\"externaladdressunprotected\": \"192.168.128.1\",\n\t\t\t\t\"externalportunprotected\": 7172,\n\t\t\t\t\"previewstate\": 0,\n\t\t\t\t\"location\": \"BRA\",\n\t\t\t\t\"anticheatprotection\": false,\n\t\t\t\t\"pvptype\": \"pvp\",\n\t\t\t\t\"istournamentworld\": false,\n\t\t\t\t\"restrictedstore\": false,\n\t\t\t\t\"currenttournamentphase\": 2\n\t\t\t}\n\t\t],\n\t\t\"characters\": [\n\t\t\t{\n\t\t\t\t\"worldid\": 0,\n\t\t\t\t\"name\": \"GOD\",\n\t\t\t\t\"ismale\": true,\n\t\t\t\t\"tutorial\": false,\n\t\t\t\t\"level\": 2,\n\t\t\t\t\"vocation\": \"No Vocation\",\n\t\t\t\t\"outfitid\": 75,\n\t\t\t\t\"headcolor\": 95,\n\t\t\t\t\"torsocolor\": 113,\n\t\t\t\t\"legscolor\": 39,\n\t\t\t\t\"detailcolor\": 115,\n\t\t\t\t\"addonsflags\": 0,\n\t\t\t\t\"ishidden\": false,\n\t\t\t\t\"istournamentparticipant\": false,\n\t\t\t\t\"ismaincharacter\": false,\n\t\t\t\t\"dailyrewardstate\": 0,\n\t\t\t\t\"remainingdailytournamentplaytime\": 0\n\t\t\t}\n\t\t]\n\t}\n}\n```\n\n## NGROK\n```bash\n# https://ngrok.com/\n# https://tech.aufomm.com/how-to-use-ngrok-with-docker/\ndocker network create ngrok_net\n\ndocker container run --rm -it \\\n  --name ngrok \\\n  --env NGROK_AUTHTOKEN=$(cat .ngrok_token) \\\n  --network ngrok_net \\\n  ngrok/ngrok http nginx:80\n\ndocker container run --rm -it \\\n  --name nginx \\\n  --network ngrok_net \\\n  nginx\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frafaelclaumann%2Fdockerized-otserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frafaelclaumann%2Fdockerized-otserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frafaelclaumann%2Fdockerized-otserver/lists"}