/AuthIsForMe

Primary LanguageTypeScriptGNU Affero General Public License v3.0AGPL-3.0

👷‍♂️🏗️ AuthIsForMe (WIP) 🚧👷 (Minecraft Authentication/User API)

  • "Make it work, make it right, make it fast" - Kent Beck
  • "The function of good software is to make the complex appear to be simple." - Grady Booch
  • "If debugging is the process of removing software bugs, then programming must be the process of putting them in" - Edsger Dijkstra

Being built with love with modernity in mind. May be slightly overengineered

Commitizen Friendly Badge Semantic Release Badge Badge GitHub Workflow Status Badge Codecov Badge Codecov Licence Badge CodeFactor Grade Badge GitPod Ready to Code Badge Open in GitHub Codespaces Badge wakatime

Credits

  • Inspired by minecraftauth.me
  • Based on AuthApp
  • AuthApp is not licensed, while it is free to use, in no way is it FOSS.
  • Our project has a special license from the author that enables us to relicense, modify, redestribute, and use the code as I wish.

Also, we are not affiliated with Mojang, Microsoft, or any of their her partners.

Roadmap

  • Manage Twitch/YouTube description with a list of allowed users at the moment - maybe
  • API Key Dashboard
  • Offer plans
  • Login with SuperTokens
  • Deliver an E2E fully tested software via GitHub Actions and Cypress and Jest
  • Don't ever touch TAP again (Since it's new, the ecosystem for TAP is weak compared to Jest or Mocha, so, our backend tests are done with Jest and Mocha)
  • Various Authentication providers (not via SuperTokens, but through our own API)
  • Provide oAuth2 for other websites to easily integrate with our API
  • Authentication providers (Google, GitHub, Discord, Guilded, Twitter, Facebook, Reddit, Twitch, YouTube, Spotify, Mojang, Xbox Live, and Patreon.)
  • GeyserMC Compatible
  • Comprehensive Rest API versioned
  • Deploy to Vercel, Railway, and PlanetScale via GitHub
  • Account deleting
  • Ory/Kratos
  • Skin 3D
  • Cape Support from various providers
  • Data exporting
  • Link to NameMC, maybe?
  • Gravatar Implementation
  • Use of Tydium Skin API for bedrock users only
  • Fastify API that generates types and schemas and OpenAPI Specification files for API consumers and VSCode
  • Switch to pnpm since a certain someone likes to run npm install a lot more than they should ()

Self-hosting

Self-hosting support will not be provided for this project. I am a student, and I have a life outside of this project, so I will not be able to provide support for self-hosting. My code is open-source because I want to share my work with the world. If you want to self-host this project, you are free to do so, but you are on your own.

Planned Technology Stack

  • WebRTC TypeScript
  • TypeScript (project-wide)
  • Next.js (Frontend)
  • Fastify (Backend)
  • Jest (Frontend & Backend)
  • Redoc (Public Enduser API documentation)
  • tRPC (project-wide types)
  • Simple Analytics/Mataomo Analytics
  • Sentry.io

Features

N/A, just starting off the project... Initial commit type flow.

Docker

This project ships a Docker Compose setup for testing purposes, if I were you, I would never use it in production. Instead, normally install Fail2Ban, CrowdSec, Postgres, Nginx, SuperTokens, NodeJS, pnpm, and Redis on a Linux machine like a regular person and configure it yourself. We have a config for Nginx for ease of deployment.

Demo

Currently not available, but will be available soon.

Screenshots

Insert automated screenshots here.

READMEs (more info on the separate projects)

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please read the Contributing Guidelines before submitting any pull requests or opening issues.

License

GNU AGPLv3

Want to know more about the license? Click here.