User Management¶
This guide covers managing users on your Nebulae instance as an administrator.
Accessing User Management¶
- Log in as admin
- Navigate to Admin Panel
- Click Manage Users
Adding Users¶
Step 1: Click "Add New User"¶
From the Manage Users page, click the Add New User button.
Step 2: Fill in User Details¶
| Field | Description | Notes |
|---|---|---|
| Username | User's email address | Used for login, never shared with remote nodes |
| Password | Initial password | User can change this later |
| Display Name | Public-facing name | What other users see |
| Date of Birth | User's birthdate | ⚠️ Cannot be changed after creation |
Step 3: Create the User¶
Click Add User to create the account.
The user can now log in with: - Username: (the email you entered) - Password: (the password you set)
Password Management¶
Resetting User Passwords¶
- Go to Manage Users
- Find the user in the list
- Click Actions → Reset Password
- Enter new password
- Confirm new password
- Click Reset Password
The user will be able to log in with the new password immediately.
Password Requirements¶
Passwords must meet these criteria: - Minimum 8 characters - At least one uppercase letter - At least one lowercase letter - At least one number - At least one special character
Changing Usernames¶
If a user needs to change their email address/username:
- Go to Manage Users
- Find the user
- Click Actions → Change Username
- Enter the new username (email address)
- Click Change Username
⚠️ Important: The user will need to use the new username to log in.
Media Path Configuration¶
Users cannot upload or browse media without configured media paths.
Types of Media Paths¶
- Read-Only Media (
user_media) - Browse existing photos - Upload Directory (
user_uploads) - Save new uploads
Configuring Media Paths¶
Step 1: Set Up Docker Volumes¶
First, ensure volumes are mounted in docker-compose.yml:
volumes:
- /home/bob/Photos:/app/user_media/bob_media:ro
- /home/bob/Uploads:/app/user_uploads/bob_uploads
Step 2: Configure in Admin Panel¶
- Go to Manage Users
- Find the user
- Click Actions → Set Media Path
- Enter paths:
- Read-only media path:
/app/user_media/bob_media - Upload path:
/app/user_uploads/bob_uploads - Click Save
Path Requirements¶
- Paths must be inside the container (not host paths)
- Read-only paths should match the
:rovolume mounts - Upload paths must be writable (no
:roflag)
Parental Controls¶
For users under 16 years old (or your region's age requirement):
Enabling Parental Controls¶
- Go to Manage Users
- Find the child user
- Click Actions → Manage Parental Controls
- Toggle Enable Parental Controls
- Click Add Parent
- Select parent username from dropdown
- Click Save Changes
What Parents Control¶
When parental controls are enabled, parents must approve: - ✅ Friend requests (sent and received) - ✅ Group join requests - ✅ Event RSVPs - ✅ Post creation - ✅ Media uploads - ✅ Comments on others' posts
Multiple Parents¶
You can assign multiple parents. Any parent can approve or deny requests.
Parent Dashboard¶
Parents can access their dashboard from: Profile → Settings → Parental Dashboard
From here they can: - View pending approval requests - Approve or deny with explanations - See their children's activity
Deleting Users¶
⚠️ Warning: User deletion is permanent and cannot be undone!
What Gets Deleted¶
- User account and profile
- All posts and comments by the user
- Media uploaded by the user
- Group memberships
- Event RSVPs
- Friend connections
- Notifications
Deletion Process¶
- Go to Manage Users
- Find the user
- Click Actions → Delete User
- Confirm the deletion
Deletion Behavior¶
- Local users: Completely removed from your node
- Federated content: Other nodes are notified to remove the user's content
- Media files: Removed from storage
Viewing User Information¶
Click on a username in the Manage Users list to view:
- User ID (PUID)
- Account creation date
- Last login
- User type (user, admin, public_page, remote)
- Hostname (for remote users)
- Age and birthdate
- Media path configuration
- Parental control status
User Types¶
Regular Users¶
- Standard user accounts
- Can post, friend, join groups
- Subject to parental controls if under 16
Admin Users¶
- Has access to admin panel
- Can manage all users
- Can create groups and public pages
- Not subject to parental controls
Public Pages¶
- Special account type for organizations
- Followers instead of friends
- Can create public events
- See Public Pages Management
Remote Users¶
- Users from federated nodes
- Created automatically through federation
- Cannot be edited on your node
- Will show originating hostname
Session Management¶
Viewing Active Sessions¶
For security, you can view a user's active sessions:
- Go to user profile (as admin)
- View Active Sessions section
- See:
- Device/browser information
- Last activity time
- IP address (if available)
Revoking Sessions¶
As admin, you cannot directly revoke user sessions. Users must manage their own sessions through:
Profile → Settings → Security → Active Sessions
However, changing a user's password will invalidate all their sessions, forcing them to log in again.
Two-Factor Authentication¶
Enabling 2FA for Users¶
Users must enable their own 2FA from: Profile → Settings → Security → Two-Factor Authentication
As admin, you cannot enable/disable 2FA for users, but you can:
Reset 2FA (if user loses access)¶
If a user loses access to their 2FA device:
- Temporarily disable 2FA via database (requires SSH access)
- Have user log in
- Have user re-enable 2FA with new device
Emergency 2FA Reset:
docker exec -it nebulae sqlite3 /app/instance/nebulae.db
sqlite> UPDATE users SET totp_secret = NULL WHERE username = 'user@example.com';
sqlite> .quit
Best Practices¶
Account Creation¶
✅ Do: - Use real email addresses for usernames - Set strong initial passwords - Configure media paths before users log in - Enable parental controls for minors immediately
❌ Don't: - Use simple/guessable passwords - Forget to set date of birth (can't change later) - Create accounts without media paths (users can't upload)
Security¶
✅ Do: - Encourage users to enable 2FA - Regularly review active sessions - Monitor for suspicious activity - Use strong password requirements
❌ Don't: - Share admin credentials - Leave default admin password unchanged - Ignore security notifications
Privacy¶
✅ Do: - Respect user privacy - Only access user data when necessary - Inform users of any data access - Follow local privacy regulations
❌ Don't: - Browse user's private posts without reason - Share user information with third parties - Monitor user activity without disclosure
Troubleshooting¶
User Can't Log In¶
- Verify username (email) is correct
- Reset password if needed
- Check if 2FA is enabled
- Verify account isn't suspended
Media Not Showing¶
- Check media path configuration
- Verify Docker volume mounts
- Check file permissions
- Restart container if needed
Parental Controls Not Working¶
- Verify user's age (under 16)
- Check parent assignments
- Ensure parents have accounts
- Verify parental controls are enabled