Skip to content

Conversation

@runleveldev
Copy link
Collaborator

@runleveldev runleveldev commented Nov 21, 2025

Required features:

  • 'Site' model (id PK, name, internalDomain, subnet, gateway, dnsForwarders). FRE configures (1, 'default', , , , )
  • 'Group' model (gidNumber PK, cn, isAdmin), FRE configures [(GID_MIN, 'sysadmins', True), (GID_MIN + 1, 'ldapusers', False)]
  • 'User' model, fields based on LDAP schemas (uidNumber PK, uid, gidNumber, homeDirectory, loginShell, cn, sn, givenName, mail, sshPublicKey, userPassword, status), FRE configures the first user using UID_MIN.
  • 'UserGroups' association model (uidNumber, gidNumber). Users get 'ldapusers' as primary group by default. 'sysadmins' denotes cluster superusers. The 'ldapusers' group will get SUDO on containers, but only 'sysadmins' will on Nodes and core infra containers
  • 'ExternalDomain' model (id, name, cloudflareApiKey)
  • Alter 'Service' model add externalDomainId to http services
  • Alter 'Container' model replace username with userId
  • Create dnsmasq.conf template
  • Some sort of acme configuration, lego
  • Node import
  • Container import
  • Implement API-backed container creation

@runleveldev runleveldev linked an issue Nov 21, 2025 that may be closed by this pull request
@runleveldev runleveldev marked this pull request as draft November 21, 2025 22:25
@runleveldev runleveldev force-pushed the 118-bootstrap-procedure branch from 611716f to 51fb6b2 Compare November 22, 2025 03:36
@runleveldev runleveldev force-pushed the 118-bootstrap-procedure branch 3 times, most recently from e937056 to 3dcb20a Compare November 24, 2025 21:52
@runleveldev runleveldev force-pushed the 118-bootstrap-procedure branch from 81888f4 to ca2615f Compare November 25, 2025 20:33
@runleveldev runleveldev force-pushed the 118-bootstrap-procedure branch from 8e9f285 to b8f8c99 Compare December 1, 2025 19:15
@runleveldev runleveldev force-pushed the 118-bootstrap-procedure branch from b8f8c99 to 7a28f49 Compare December 1, 2025 19:27
@runleveldev runleveldev marked this pull request as ready for review December 1, 2025 20:10
@runleveldev runleveldev force-pushed the 118-bootstrap-procedure branch 4 times, most recently from ffe02f7 to 11703ca Compare December 2, 2025 22:16
@cmyers-mieweb
Copy link
Collaborator

Did we want to also include additional rate limiting for logins and registers inside /create-a-container/views/server.js?
Something similar to adding this const

  const authLimiter = RateLimit({
    windowMs: 15 * 60 * 1000, // 15 minutes
    max: 10, // max 10 attempts per IP per window
    standardHeaders: true,
    legacyHeaders: false
  });

and then applying it to lines 116 and 117 app.use('/login', loginRouter); and app.use('/register', registerRouter);

  app.use('/login', authLimiter, loginRouter);
  app.use('/register', authLimiter, registerRouter);

@runleveldev
Copy link
Collaborator Author

Did we want to also include additional rate limiting for logins and registers inside /create-a-container/views/server.js? Something similar to adding this const

  const authLimiter = RateLimit({
    windowMs: 15 * 60 * 1000, // 15 minutes
    max: 10, // max 10 attempts per IP per window
    standardHeaders: true,
    legacyHeaders: false
  });

and then applying it to lines 116 and 117 app.use('/login', loginRouter); and app.use('/register', registerRouter);

  app.use('/login', authLimiter, loginRouter);
  app.use('/register', authLimiter, registerRouter);

The rate limit is actually applied globally. See line 73 of the server.js

@runleveldev runleveldev force-pushed the 118-bootstrap-procedure branch from 11703ca to 1c131d5 Compare December 3, 2025 15:17
Copy link
Collaborator

@cmyers-mieweb cmyers-mieweb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved, we can work together on the merge

@runleveldev runleveldev merged commit 75f3dd1 into main Dec 3, 2025
3 checks passed
@runleveldev runleveldev deleted the 118-bootstrap-procedure branch December 3, 2025 17:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants