a better basket to put all your eggs in
Find a file
2026-01-20 17:49:28 -05:00
.github Bump actions/checkout from 4 to 6 (#45) 2025-12-03 01:56:42 -05:00
app fix birthday 2026-01-20 17:49:28 -05:00
bin initial public commit!!! 2025-09-02 13:53:47 -04:00
config sfskdjhfksjhf 2026-01-15 18:38:51 -05:00
db WebAuthn/passkeys support (#53) 2026-01-13 15:48:21 -05:00
lib analytics (#156) 2026-01-13 12:06:36 -05:00
log initial public commit!!! 2025-09-02 13:53:47 -04:00
public switch error handling to sentry 2025-12-29 16:19:10 -05:00
script initial public commit!!! 2025-09-02 13:53:47 -04:00
spec fix up flavortown spec 2026-01-01 17:51:53 -05:00
storage initial public commit!!! 2025-09-02 13:53:47 -04:00
tmp initial public commit!!! 2025-09-02 13:53:47 -04:00
vendor initial public commit!!! 2025-09-02 13:53:47 -04:00
.dockerignore initial public commit!!! 2025-09-02 13:53:47 -04:00
.erb_lint.yml Address autocomplete! (#115) 2025-12-19 12:20:18 -05:00
.gitattributes initial public commit!!! 2025-09-02 13:53:47 -04:00
.gitignore [Backend] UI2. (#67) 2025-12-03 01:17:37 -05:00
.rspec VERSION. TWO. (#42) 2025-11-24 10:52:27 -05:00
.rubocop.yml initial public commit!!! 2025-09-02 13:53:47 -04:00
.ruby-version initial public commit!!! 2025-09-02 13:53:47 -04:00
config.ru initial public commit!!! 2025-09-02 13:53:47 -04:00
docker-compose-dbonly.yml initial public commit!!! 2025-09-02 13:53:47 -04:00
Dockerfile UGH 2025-12-04 17:44:17 -05:00
Dockerfile.worker more threads? 2026-01-07 13:47:01 -05:00
Gemfile WebAuthn/passkeys support (#53) 2026-01-13 15:48:21 -05:00
Gemfile.lock WebAuthn/passkeys support (#53) 2026-01-13 15:48:21 -05:00
package.json [Backend] UI2. (#67) 2025-12-03 01:17:37 -05:00
Procfile.dev initial public commit!!! 2025-09-02 13:53:47 -04:00
Rakefile initial public commit!!! 2025-09-02 13:53:47 -04:00
README.md WebAuthn/passkeys support (#53) 2026-01-13 15:48:21 -05:00
vite.config.mts [Backend] UI2. (#67) 2025-12-03 01:17:37 -05:00
yarn.lock [Backend] UI2. (#67) 2025-12-03 01:17:37 -05:00

Hack Club Auth

This is the Rails codebase powering https://auth.hackclub.com!

contributing

ask around in #idv-dev or poke nora!

avoid questions that can be answered by reading the source code, but otherwise i'd be happy to help you get up to speed :-D

kindly bin/lint your code before you submit it!

areas of focus

the ops view components (look in app/components) are a hot mess...

so is the onboarding controller, she should really be ripped out and replaced.

dev setup

  • make sure you have working installations of ruby ≥ 3.4.4 & nodejs
  • clone repo
  • create .env.development, populate DATABASE_URL w/ a local postgres instance and LOCKBOX_MASTER_KEY with the value of openssl rand -hex 32
  • if you want to use docker, you can run docker compose -f docker-compose-dbonly.yml up to spin up a database and plug postgresql://postgres@localhost:5432/identity_vault_development in as your DATABASE_URL
    • if you don't have docker and are on macOS, orbstack may be helpful
  • run bundle install
  • run bin/rails db:prepare
  • console in (bin/rails console)
    • Backend::User.create!(slack_id: "U<whatever>", username: "<you>", active: true, super_admin: true)
  • run bin/dev (and bin/vite dev if you want hot reload on css & js)
  • visit http://localhost:3000/backend/login, paste that Slack ID in, and "fake it til' you make it"

security

this oughta go without saying, but if you find a security-relevant issue please either contact me directly or go through the security.hackclub.com flow if you just open an issue or a PR there's a chance a bad actor sees it and exploits it before we can patch or merge.