User and Project Management - davidgb8246/RapidRollout GitHub Wiki

👥 User and Project Management

This section explains how users, roles, and project lifecycles are managed in RapidRollout. Understanding these behaviors helps ensure safe and predictable deployments.


🔐 Roles and Access Control

RapidRollout operates with two roles:

🛠 Administrator

  • Defined by being a Django superuser.
  • Can create new user accounts via a dedicated "Manage Users" section.
  • From the main RapidRollout interface, administrators can only manage their own projects, just like regular users.

👤 User

  • Can only access and manage their own projects.
  • Can create, deploy, and update projects linked to their account.
  • Can change their email and password in the dashboard section.

🧩 Project Ownership and Linux Integration

When a user creates a project and performs the first deployment, RapidRollout automatically:

  • Creates a corresponding Linux system user.
  • Saves all deployments under that Linux user's /home directory.
    • Example path: /home/rapidrollout-abc123/MyApp/

This isolation ensures file system separation and secure deployment environments per user.


🗑 What Happens When a User Is Deleted?

When a user is removed from the RapidRollout panel by an administrator:

  1. All of the user’s projects are stopped and deleted.
  2. The associated project folders under the Linux user’s home directory are removed.
  3. The Linux system user associated with the account is deleted after all projects are destroyed.

⚠️ Note: Private files stored outside the user’s home directory (e.g., files saved using absolute paths) are not automatically deleted and must be managed manually.

⚠️ This cleanup prevents orphaned processes and frees system resources.


📋 Best Practices for Admins

  • Use the built-in "Users" page to manage access easily.
  • Use the Django Admin Panel if deeper control over user or project models is needed.
  • Before deleting users, make sure you're aware of all their active deployments.

🔐 Security and Isolation

Each user’s environment is isolated at the system level. This means:

  • All files and containers are namespaced to the Linux user linked to the account.
  • Deployments happen in protected directories scoped per user.

🧭 Navigating to User Management

Administrators can manage users by clicking "Manage Users" in the main navigation bar, where they can:

  • Create new user accounts.
  • Edit or delete existing users.

By understanding how users and projects are tied together, administrators can safely manage deployment environments while maintaining strong system hygiene and security.