{"id":15700970,"url":"https://github.com/luan/slenderaac","last_synced_at":"2025-09-11T10:39:26.987Z","repository":{"id":172619908,"uuid":"649482105","full_name":"luan/slenderaac","owner":"luan","description":null,"archived":false,"fork":false,"pushed_at":"2024-04-11T13:20:09.000Z","size":21319,"stargazers_count":9,"open_issues_count":23,"forks_count":10,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-07T14:53:12.837Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2023-06-05T01:00:13.000Z","updated_at":"2025-02-21T14:22:42.000Z","dependencies_parsed_at":"2024-10-24T05:25:43.241Z","dependency_job_id":"7df755ea-9eaa-4400-aa65-4e1a0ba43937","html_url":"https://github.com/luan/slenderaac","commit_stats":null,"previous_names":["luan/slenderaac"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/luan/slenderaac","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luan%2Fslenderaac","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luan%2Fslenderaac/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luan%2Fslenderaac/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luan%2Fslenderaac/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luan","download_url":"https://codeload.github.com/luan/slenderaac/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luan%2Fslenderaac/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274616748,"owners_count":25318224,"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","status":"online","status_checked_at":"2025-09-11T02:00:13.660Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-10-03T19:57:23.048Z","updated_at":"2025-09-11T10:39:26.968Z","avatar_url":"https://github.com/luan.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Slender AAC\n\nThis project is a website for the [Canary](https://github.com/opentibiabr/canary) project. The main goal is to use modern technology to have something that is easy to maintain and extend. It is also meant to be efficient, secure and easy to deploy.\n\n[Features / Roadmap](https://github.com/luan/slenderaac/issues/24)\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003ch2\u003eGetting started\u003c/h2\u003e\u003c/summary\u003e\n\n### Requirements\n\n- [Node.js](https://nodejs.org/en/)\n- [PNPM](https://pnpm.io/)\n- [MySQL](https://www.mysql.com/) or [MariaDB](https://mariadb.org/)\n  - Running a database compatible with `canary`\n\n### Installation\n\nClone this repository and install the dependencies:\n\n```bash\ngit clone https://github.com/luan/slenderaac.git\ncd slenderaac\npnpm install\ncp .env.dist .env\n```\n\nEdit `.env` with your server and desired settings. Then migrate the database using the command below. Note that this assumes your current database already has the `canary` schema imported.\n\n```bash\npnpm migrate:resolve\npnpm migrate\npnpm generate\n```\n\n### Running\n\nAt this point you should be ready to run the server:\n\n```bash\npnpm dev\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003ch2\u003eDeployment\u003c/h2\u003e\u003c/summary\u003e\n\nDeployment depends highly on your server setup. Assuming you are on a Linux dedicated server or VPS. You need the following:\n\n- [Nginx](https://nginx.org/en/)\n- [Node.js](https://nodejs.org/en/)\n- [PNPM](https://pnpm.io/)\n\nAs well as a database compatible with `canary`. You can use either [MySQL](https://www.mysql.com/) or [MariaDB](https://mariadb.org/).\n\n### Installation\n\n```bash\nsudo apt update\ncurl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - \u0026\u0026 sudo apt install -y nodejs\nsudo npm install -g pnpm\nsudo apt install -y nginx\n```\n\nClone this repository and install the dependencies:\n\n```bash\ngit clone https://github.com/luan/slenderaac.git\ncd slenderaac\npnpm install\ncp .env.dist .env\n```\n\n### Nginx\n\nWe're just using Nginx as a reverse proxy. You can use any other web server that supports reverse proxying if you'd like. The Nginx configuration is as follows (adjust port and domain as needed if you're not using the defaults):\n\n```nginx\nserver {\n        listen 80 default_server;\n        listen [::]:80 default_server;\n        server_name _;\n\n        location / {\n                   proxy_pass http://127.0.0.1:3000;\n                   proxy_http_version 1.1;\n                   proxy_set_header Upgrade $http_upgrade;\n                   proxy_set_header Connection 'upgrade';\n                   proxy_set_header Host $host;\n                   proxy_cache_bypass $http_upgrade;\n       }\n}\n```\n\n### Building\n\nBecause we're now in a production environment, we need to build the project. This will generate the static files that will be served by the nodejs server. This is a one time step, you only need to do this again if you change /update the code.\n\n```bash\npnpm generate\npnpm build\n```\n\n### Migrating the database\n\nAt this point you should be ready to migrate the database. This will create the necessary tables and columns. Note that this assumes your current database already has the `canary` schema imported.\n\n```bash\npnpm migrate:resolve\npnpm migrate\n```\n\n### Running\n\nFinally, we need to run the server, this will run on port 3000 by defaul, which is what we configured Nginx to proxy to.\n\n```bash\nNODE_ENV=production node -r dotenv/config build\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003ch2\u003eClient config\u003c/h2\u003e\u003c/summary\u003e\n\nUsing your favorite method to edit the client (see [this tutorial](https://docs.opentibiabr.com/others/tutorials/infrastructure#client-with-notepad++-1) for help). Set the login webservice url to http://localhost:5173/api/login (or your appropraite server URL). This will make the client use the AAC to login.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003ch2\u003eAnimated outfits\u003c/h2\u003e\u003c/summary\u003e\n\nYou'll need to download the spritesheet from [here]([https://docs.opentibiabr.com/others/downloads/website-applications/applications#animated-items-and-outfits](https://docs.opentibiabr.com/opentibiabr/downloads/website-applications/applications#animated-items-and-outfits)) and place it in `outfits_anim`. These assets are not included in the repository because they can cause the repo to bloat, and are also not release under the same license as the code.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003ch2\u003eInventory Items\u003c/h2\u003e\u003c/summary\u003e\n\nYou'll need to download the spritesheet from\n[here](https://docs.opentibiabr.com/others/downloads/website-applications/applications#animated-items-and-outfits)\nthe items in `items`. These assets are not included in the repository\nbecause they can cause the repo to bloat, and are also not release under the same license\nas the code.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003ch2\u003eGame store assets\u003c/h2\u003e\u003c/summary\u003e\n\nAnything you put into the `static` folder in this repo will be served by the server. This is useful for storing assets for the game store. For example, you can put a `static/images/store` folder and then reference the images in the store using `/images/store/my-image.png`. For instance, you can use the store assets made available in the [canary docs](https://docs.opentibiabr.com/others/downloads/website-applications/applications#store-for-client-13)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003ch2\u003eScreenshots\u003c/h2\u003e\u003c/summary\u003e\n\n### Homepage (as admin)\n\n\u003cimg width=\"1210\" alt=\"image\" src=\"https://github.com/luan/slenderaac/assets/223760/1c5c7a62-6f1e-4405-87f3-25b546a78e41\"\u003e\n\n### Login page after registration\n\n\u003cimg width=\"1194\" alt=\"image\" src=\"https://github.com/luan/slenderaac/assets/223760/5befad19-f367-4df4-86f9-f602bcd34340\"\u003e\n\n### Account page (unverified)\n\n\u003cimg width=\"1183\" alt=\"image\" src=\"https://github.com/luan/slenderaac/assets/223760/7213755e-2672-4d77-aa9f-2a775fb668f5\"\u003e\n\n### Verification email\n\n\u003cimg width=\"571\" alt=\"image\" src=\"https://github.com/luan/slenderaac/assets/223760/3ecbdc70-886f-45aa-843b-d992f6d838a8\"\u003e\n\n### Static page\n\n\u003cimg width=\"1188\" alt=\"image\" src=\"https://github.com/luan/slenderaac/assets/223760/bd4ca3b6-a282-47f5-892b-31de7a5cad17\"\u003e\n\n### Shop 1\n\n![Slender](https://github.com/luan/slenderaac/assets/223760/6d8c6d49-2eda-474b-8d43-b7313fae2a4b)\n\n### Shop 2\n\n![Slender (1)](https://github.com/luan/slenderaac/assets/223760/35a4a106-45fd-4093-8e20-ca37a9297d5f)\n\n### Shop (video)\n\nhttps://github.com/luan/slenderaac/assets/223760/1b88dae4-dcbf-401e-a46e-64655e094cc1\n\n### Highscores\n\n![Slender | Highscores](https://github.com/luan/slenderaac/assets/223760/cb7dd1b7-be1d-40f9-9272-5329213b20e2)\n\n### Character search\n\nhttps://github.com/luan/slenderaac/assets/223760/a2cb7aad-a3df-46a2-b284-1f38a910fcbf\n\n### Guilds\n\n![Slender | Guilds (1)](https://github.com/luan/slenderaac/assets/223760/b8f5e2ea-d04f-4fb8-87a7-fa7a0fe06476)\n![Slender](https://github.com/luan/slenderaac/assets/223760/04958dcf-931b-46c3-80de-f7c71f005b94)\n![Slender (2)](https://github.com/luan/slenderaac/assets/223760/a6ccf9d9-9802-4a67-bf77-125af02a7672)\n![Capture-2023-06-16-195438](https://github.com/luan/slenderaac/assets/223760/a38c60de-9f33-4005-b278-1e0552c53b14)\n![Capture-2023-06-16-195453](https://github.com/luan/slenderaac/assets/223760/06271632-6f46-4aef-b87e-e9e912af7138)\n![Capture-2023-06-16-195510](https://github.com/luan/slenderaac/assets/223760/353eea86-56a1-4c83-b1c7-8fec38dec0d9)\n![Slender (3)](https://github.com/luan/slenderaac/assets/223760/520fd041-12b8-4d63-bfad-547450e73bc3)\n![Capture-2023-06-16-195556](https://github.com/luan/slenderaac/assets/223760/b71aeb1d-ccbd-4324-87e9-97ed95e8379f)\n\n\u003c/details\u003e\n\n## Tech stack\n\n- [Svelte](https://svelte.dev/)\n- [SvelteKit](https://kit.svelte.dev/)\n- [TypeScript](https://www.typescriptlang.org/)\n- [SkeletonCSS](https://skeleton.dev)\n- [TailwindCSS](https://tailwindcss.com/)\n- [Prisma](https://www.prisma.io/)\n- [PNPM](https://pnpm.io/)\n\n## Contributing\n\nContributions are welcome! Please open an issue or pull request. Be sure to post screenshots and logs of any issues you're having.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluan%2Fslenderaac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluan%2Fslenderaac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluan%2Fslenderaac/lists"}