- Administrator Overview
- User Management
- Location Management
- Cabinet and Drawer Management
- Entity Management
- Tag Management
- Archive and Destruction Workflows
- Backup and Restore
- Security Best Practices
- System Maintenance
- Audit and Compliance
- Troubleshooting
As a RoloDrawer administrator, you are responsible for:
- Managing user accounts and permissions
- Maintaining organizational structure (locations, cabinets, drawers)
- Overseeing data quality and integrity
- Performing backups and system maintenance
- Ensuring security and compliance
- Generating reports for management
- Training users and providing support
Access admin features from the Admin menu (visible only to administrators):
┌────────────────────────────────────────────────┐
│ Admin Dashboard │
├────────────────────────────────────────────────┤
│ System Health │
│ ✓ Database: Healthy (12.5 MB) │
│ ✓ Last Backup: 2 hours ago │
│ ✓ Active Users: 12 of 25 licenses │
│ ⚠ Overdue Checkouts: 3 files │
│ │
│ Quick Stats (Last 30 Days) │
│ • Files Created: 28 │
│ • Files Moved: 45 │
│ • Checkouts: 67 │
│ • New Users: 2 │
│ │
│ Pending Actions │
│ • 2 new user registration requests │
│ • 1 file destruction request pending approval │
│ • System update available (v1.0.1) │
└────────────────────────────────────────────────┘
RoloDrawer has three role levels:
Can:
- Search and view files
- View locations, cabinets, drawers
- View reports (limited)
- View their own profile
Cannot:
- Create or edit files
- Checkout files
- Modify any data
- Access admin functions
Can:
- Everything a Viewer can do
- Create new files
- Edit files they own
- Checkout and checkin files
- Add tags and cross-references
- Create entities
- Generate all reports
Cannot:
- Edit files they don't own (unless granted permission)
- Access admin functions
- Manage users
- Permanently delete files
Can:
- Everything Users can do
- Create, edit, delete user accounts
- Manage all system settings
- Edit any file regardless of owner
- Manage locations, cabinets, drawers
- Approve file destructions
- Access audit logs
- Perform system maintenance
- Full report access
- Go to Admin > Users > Add User
- Fill in user details:
┌────────────────────────────────────────┐
│ Create New User │
├────────────────────────────────────────┤
│ Username: [__________] │
│ Email: [__________] │
│ Full Name: [__________] │
│ │
│ Role: [User ▼] │
│ │
│ Department: [__________] (optional) │
│ │
│ Password: │
│ ○ Auto-generate and email to user │
│ ○ Set password: [__________] │
│ │
│ ☐ Require password change on login │
│ ☐ Account active │
│ │
│ [Cancel] [Create User] │
└────────────────────────────────────────┘
- Choose whether to auto-generate password or set one
- User receives email with login credentials
- User must change password on first login
- Go to Admin > Users
- Click on username to edit
- Modify:
- Email address
- Full name
- Department
- Role (promote/demote)
- Active status
- Click Save Changes
As Administrator:
- Go to Admin > Users
- Click on username
- Click Reset Password
- Choose:
- Auto-generate and email new password
- Set specific password
- Check "Require password change on next login"
- Confirm reset
Self-Service Reset: Users can reset their own passwords:
- From login page: "Forgot Password?"
- Enter email address
- Receive reset link via email
- Link expires in 24 hours
Instead of deleting, deactivate users who leave:
- Go to Admin > Users
- Click on username
- Uncheck Account Active
- Choose what to do with their files:
- Reassign to another user
- Leave as-is (still searchable)
- Transfer ownership to you
- Save changes
Deactivated users:
- Cannot log in
- Files remain in system
- Checkout history preserved
- Can be reactivated if needed
Import multiple users from CSV:
- Go to Admin > Users > Import Users
- Download CSV template
- Fill in user data:
username,email,full_name,role,department jsmith,john.smith@company.com,John Smith,user,Finance jdoe,jane.doe@company.com,Jane Doe,user,Legal
- Upload CSV file
- Review import preview
- Confirm import
- Users receive welcome emails
Locations represent physical buildings or facilities where files are stored.
- Go to Admin > Locations > Add Location
- Fill in details:
┌────────────────────────────────────────┐
│ Add Location │
├────────────────────────────────────────┤
│ Name: [__________] │
│ Description: [__________] │
│ │
│ Address: │
│ Street: [__________] │
│ City: [__________] │
│ State: [__] ZIP: [_____] │
│ │
│ Contact Information: │
│ Contact Name: [__________] │
│ Phone: [__________] │
│ Email: [__________] │
│ │
│ Notes: [___________________________] │
│ │
│ [Cancel] [Create Location] │
└────────────────────────────────────────┘
Example:
- Name: Building A - Main Office
- Description: Main corporate office building
- Address: 123 Main Street, Suite 200, Anytown, CA 90210
- Contact: Jane Smith (Facilities), (555) 123-4567
View all locations:
- Go to Locations > All Locations
- See list with cabinet counts
- Click to view details or edit
Edit location:
- Update address, contact, or description
- Location name can be changed (files are automatically updated)
Delete location:
- Only if no cabinets are assigned
- Otherwise, must reassign or delete cabinets first
- Go to Admin > Cabinets > Add Cabinet
- Fill in cabinet information:
┌────────────────────────────────────────┐
│ Add Cabinet │
├────────────────────────────────────────┤
│ Cabinet ID: [__________] │
│ (e.g., CAB-001, FC-A-12) │
│ │
│ Location: [Building A ▼] │
│ │
│ Description: [__________] │
│ │
│ Number of Drawers: [4 ▼] │
│ │
│ Drawer Labels: │
│ ○ Letters (A, B, C, D...) │
│ ○ Numbers (1, 2, 3, 4...) │
│ ○ Custom (specify below) │
│ │
│ Custom Labels (comma-separated): │
│ [Top, Upper, Lower, Bottom] │
│ │
│ [Cancel] [Create Cabinet] │
└────────────────────────────────────────┘
- Drawers are automatically created based on your settings
- Cabinet appears in the system with all drawers ready
Cabinet ID Best Practices:
- Use consistent naming scheme
- Include location identifier (e.g., BLD-A-CAB-001)
- Use leading zeros for sorting (CAB-001, not CAB-1)
- Consider including department or area
View cabinet drawers:
- Go to Cabinets > click cabinet ID
- See all drawers with file counts
- Click drawer to see all files inside
Edit drawer:
- Change drawer label
- Add description
- Mark as out of service
Drawer capacity:
- Set maximum file count (optional)
- System warns when drawer approaches capacity
- Helps with physical space planning
When physically relocating a cabinet:
- Go to Cabinets > click cabinet ID
- Click Move Cabinet
- Select new location
- Add reason/notes
- Confirm move
- All files in cabinet are automatically updated
- Movement logged in audit trail
Before removing a cabinet:
- Ensure all files are removed or reassigned
- Go to Cabinets > click cabinet ID
- If files remain, use Bulk Reassign:
- Select destination cabinet/drawer
- Confirm reassignment
- All files moved at once
- Once empty, click Delete Cabinet
- Drawers are automatically deleted
Entities represent organizations, people, or projects that files relate to.
- Go to Admin > Entities > Add Entity
- Fill in entity information:
┌────────────────────────────────────────┐
│ Add Entity │
├────────────────────────────────────────┤
│ Name: [__________] │
│ │
│ Type: [Vendor ▼] │
│ Options: Vendor, Client, │
│ Contractor, Project, Department, │
│ Property, Other │
│ │
│ Description: [___________________] │
│ │
│ Contact Information: │
│ Primary Contact: [__________] │
│ Email: [__________] │
│ Phone: [__________] │
│ Website: [__________] │
│ │
│ Address: │
│ [_________________________________] │
│ │
│ Tags: [__________] │
│ │
│ Status: │
│ ○ Active ○ Inactive ○ Archived │
│ │
│ [Cancel] [Create Entity] │
└────────────────────────────────────────┘
Example - Vendor Entity:
- Name: ACME Corporation
- Type: Vendor
- Description: Primary IT services and equipment vendor
- Contact: Sarah Johnson, contracts@acme.com, (555) 987-6543
- Tags: IT Services, Hardware, Active
View all entities:
- Go to Entities > All Entities
- Filter by type or status
- See file count for each
Edit entity:
- Update contact information
- Change status
- Modify description
- Add/remove tags
Merge entities: When duplicates exist:
- Go to Admin > Entities > Merge Entities
- Select primary entity (to keep)
- Select duplicate entity (to merge from)
- Preview merge (shows all files that will be reassigned)
- Confirm merge
- Duplicate entity is deleted
- All files now associated with primary entity
Create parent-child relationships:
Example:
- ACME Corporation (parent)
- ACME IT Division (child)
- ACME Consulting (child)
To create:
- Edit child entity
- Set "Parent Entity" field
- Save
Files can be associated with child entity but appear when viewing parent.
Go to Admin > Tags to see:
- All tags in system
- Number of files per tag
- Tag creation date
- Created by whom
Prevent tag proliferation:
- Go to Admin > Tags > Tag Rules
- Enable Require Approval for New Tags
- Users can suggest tags, but admins must approve
- Review pending tags regularly
Combine duplicate or similar tags:
- Go to Admin > Tags > Merge Tags
- Select primary tag (e.g., "Contracts")
- Select tags to merge (e.g., "Contract", "Agreement")
- Preview affected files
- Confirm merge
- All files retagged with primary tag
Apply tags to multiple files at once:
- Go to Files > All Files
- Use filters to find target files
- Select files (checkboxes)
- Click Actions > Add Tags
- Enter tags to add
- Confirm
Example use cases:
- Tag all files in a location with location name
- Tag files by department
- Add year tags to old files
Create tag categories for organization:
System Default Categories:
- Department
- Document Type
- Year
- Status
- Entity
- Project
Custom categories:
- Go to Admin > Tags > Categories
- Add new category
- Assign existing tags to categories
- Tags can belong to multiple categories
Benefits:
- Helps users find appropriate tags
- Enforces tagging standards
- Improves search filtering
- Open file detail page
- Click Archive
- Select reason:
- Project completed
- Retention period expired
- Superseded by newer version
- Consolidated into another file
- Other (specify)
- Add notes
- Confirm archive
For archiving multiple files:
- Go to Files > Advanced Search
- Filter by criteria (e.g., date created before 2020)
- Select files to archive
- Click Actions > Archive Selected
- Choose archive reason
- Confirm
Archived files:
- Marked with "Archived" badge
- Not shown in default searches (unless "Include Archived" checked)
- Cannot be checked out
- Remain fully searchable
- Can be un-archived if needed
Set up rules for automatic archiving:
- Go to Admin > Settings > Archive Rules
- Create rule:
- Condition: Files older than X years
- Action: Archive automatically
- Reason: Retention period expired
- Rules run nightly
- Email report sent to admins
Example rules:
- Archive files created >7 years ago
- Archive files tagged "Temporary" after 1 year
- Archive files for completed projects
IMPORTANT: Destruction is permanent. Use with caution.
File destruction requires approval workflow:
Step 1: Request Destruction
- User opens file detail page
- Clicks Request Destruction
- Fills out destruction request:
- Reason for destruction
- Retention policy reference (if applicable)
- Proposed destruction method
- Confirmation statement
- Submits request
Step 2: Admin Review
- Admin receives notification
- Goes to Admin > Destruction Requests
- Reviews request details
- Verifies:
- Retention requirements met
- No pending legal holds
- Proper authorization
- Approves or denies
Step 3: Physical Destruction
- If approved, file appears in Pending Destruction queue
- Admin or designee:
- Retrieves physical file
- Destroys using approved method (shred, burn, etc.)
- Returns to RoloDrawer
- Marks Destruction Completed
- Records:
- Destruction date
- Destruction method
- Witness (if required)
- Certificate number (if applicable)
Step 4: System Update
- File marked as destroyed
- Moved to Destruction Log (permanent audit record)
- File data removed from active database
- Audit record retained indefinitely
Configure approved methods:
-
Go to Admin > Settings > Destruction Methods
-
Add approved methods:
- Cross-cut shredding
- Incineration
- Pulping
- Digital wiping (for electronic media)
- Certified destruction service
-
Assign methods to sensitivity levels:
- Public: Any method
- Internal: Shredding or better
- Confidential: Cross-cut shredding or incineration
- Restricted: Witnessed incineration with certificate
For destroying multiple files:
- Go to Files > Advanced Search
- Filter by destruction criteria
- Select files
- Click Actions > Request Bulk Destruction
- Fill out bulk destruction form
- Submit for approval
- Follow same approval workflow
Generate reports for compliance:
- Destruction Log: All destroyed files with details
- Pending Destructions: Files approved but not yet destroyed
- Destruction Certificates: Official certificates for auditors
Implement a comprehensive backup strategy:
- Database: All file metadata, users, locations
- Uploaded Files: Any documents stored in
/uploads/ - Configuration:
config.phpand settings - QR Codes: Generated QR code images (optional, can be regenerated)
Recommended schedule:
- Daily: Automated database backups (keep 7 days)
- Weekly: Full system backup (keep 4 weeks)
- Monthly: Long-term archive backup (keep 12 months)
- Before Updates: Manual backup before system updates
- Go to Admin > System > Backup
- Choose backup type:
- Database only
- Full system (database + files)
- Click Create Backup
- Wait for completion (progress bar shown)
- Download backup file
- Store securely offsite
SQLite database:
# Backup database
sqlite3 data/rolodrawer.db ".backup data/backup_$(date +%Y%m%d).db"
# Or copy file
cp data/rolodrawer.db backups/rolodrawer_$(date +%Y%m%d).dbMySQL database:
# Backup database
mysqldump -u rolodrawer -p rolodrawer > backups/rolodrawer_$(date +%Y%m%d).sql
# Include routines and triggers
mysqldump -u rolodrawer -p --routines --triggers rolodrawer > backups/rolodrawer_full_$(date +%Y%m%d).sqlFull system backup:
#!/bin/bash
# Backup script
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/backup/rolodrawer"
APP_DIR="/var/www/html/rolodrawer"
# Create backup directory
mkdir -p $BACKUP_DIR
# Backup database
cp $APP_DIR/data/rolodrawer.db $BACKUP_DIR/db_$DATE.db
# Backup uploads
tar -czf $BACKUP_DIR/uploads_$DATE.tar.gz $APP_DIR/uploads/
# Backup config
cp $APP_DIR/config.php $BACKUP_DIR/config_$DATE.php
# Create full archive
tar -czf $BACKUP_DIR/full_backup_$DATE.tar.gz \
$BACKUP_DIR/db_$DATE.db \
$BACKUP_DIR/uploads_$DATE.tar.gz \
$BACKUP_DIR/config_$DATE.php
# Clean up individual files
rm $BACKUP_DIR/db_$DATE.db
rm $BACKUP_DIR/uploads_$DATE.tar.gz
rm $BACKUP_DIR/config_$DATE.php
# Delete backups older than 30 days
find $BACKUP_DIR -name "full_backup_*.tar.gz" -mtime +30 -delete
echo "Backup completed: $BACKUP_DIR/full_backup_$DATE.tar.gz"# Edit crontab
crontab -e
# Add daily backup at 2 AM
0 2 * * * /usr/local/bin/rolodrawer_backup.sh
# Add weekly full backup on Sunday at 3 AM
0 3 * * 0 /usr/local/bin/rolodrawer_full_backup.sh- Open Task Scheduler
- Create new task
- Set trigger (daily at 2 AM)
- Set action: Run backup script
- Save task
Test backups regularly:
- Monthly, attempt restore to test environment
- Verify all data is present
- Test file uploads
- Confirm user logins work
- Document any issues
SQLite:
# Stop web server
sudo systemctl stop apache2
# Backup current database (just in case)
cp data/rolodrawer.db data/rolodrawer.db.before_restore
# Restore from backup
cp backups/rolodrawer_20260115.db data/rolodrawer.db
# Set permissions
chown www-data:www-data data/rolodrawer.db
chmod 664 data/rolodrawer.db
# Start web server
sudo systemctl start apache2MySQL:
# Drop and recreate database
mysql -u root -p
DROP DATABASE rolodrawer;
CREATE DATABASE rolodrawer CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
EXIT;
# Restore from backup
mysql -u rolodrawer -p rolodrawer < backups/rolodrawer_20260115.sql# Extract backup
cd /tmp
tar -xzf /backup/rolodrawer/full_backup_20260115.tar.gz
# Stop web server
sudo systemctl stop apache2
# Backup current state
mv /var/www/html/rolodrawer /var/www/html/rolodrawer.old
# Restore files
# (Extract and copy database, uploads, config)
# Set permissions
sudo chown -R www-data:www-data /var/www/html/rolodrawer
sudo chmod -R 755 /var/www/html/rolodrawer
# Start web server
sudo systemctl start apache2
# Test system
# Verify login, search, file accessFor critical data loss, restore to specific point:
- Restore most recent backup
- If using MySQL with binary logging:
# Replay binary logs to specific timestamp mysqlbinlog --start-datetime="2026-01-15 14:30:00" \ --stop-datetime="2026-01-15 14:45:00" \ mysql-bin.000001 | mysql -u root -p rolodrawer
Store backups securely offsite:
AWS S3:
# Upload backup to S3
aws s3 cp full_backup_20260115.tar.gz s3://company-backups/rolodrawer/
# With encryption
aws s3 cp full_backup_20260115.tar.gz s3://company-backups/rolodrawer/ \
--sse AES256rsync to remote server:
# Sync to remote backup server
rsync -avz --delete /backup/rolodrawer/ \
backupuser@backup.company.com:/backups/rolodrawer/Encrypt backups before offsite storage:
# Encrypt backup with GPG
gpg --symmetric --cipher-algo AES256 full_backup_20260115.tar.gz
# Creates: full_backup_20260115.tar.gz.gpg
# Decrypt when needed
gpg --decrypt full_backup_20260115.tar.gz.gpg > full_backup_20260115.tar.gzConfigure strong password requirements:
- Go to Admin > Settings > Security
- Set password policy:
- Minimum length: 12 characters
- Require uppercase letters
- Require lowercase letters
- Require numbers
- Require special characters
- Password expiration: 90 days
- Password history: Cannot reuse last 5 passwords
Configure session security:
// In config.php
$config['session_timeout'] = 3600; // 1 hour
$config['session_secure'] = true; // HTTPS only
$config['session_httponly'] = true; // No JavaScript access
$config['remember_me_duration'] = 604800; // 7 daysEnable 2FA for administrators:
- Go to Admin > Settings > Security
- Enable Require 2FA for Administrators
- Choose 2FA method:
- TOTP (Google Authenticator, Authy)
- Email codes
- SMS codes
- Admins will be prompted to set up on next login
RoloDrawer logs:
- User logins/logouts
- Failed login attempts
- File creation, edits, deletions
- File movements
- Checkouts and returns
- Permission changes
- Configuration changes
- User account changes
- Archive/destruction actions
- Go to Admin > Audit Log
- Filter by:
- Date range
- User
- Action type
- File or entity
- Export logs for external analysis
Configure log retention:
- Go to Admin > Settings > Logging
- Set retention period:
- Standard logs: 90 days
- Security logs: 1 year
- Destruction logs: Indefinite
- Logs are automatically archived and compressed
Configure access rules by sensitivity:
- Go to Admin > Settings > Sensitivity Rules
- For each level, set:
Restricted:
- Viewable by: Admins and owner only
- Editable by: Owner only
- Checkout requires: Admin approval
- Print labels: Includes "RESTRICTED" watermark
Confidential:
- Viewable by: Admins, owner, and specific departments
- Editable by: Owner and admins
- Checkout: Logged with reason required
Internal:
- Viewable by: All authenticated users
- Editable by: Owner and admins
- Checkout: Standard process
Public:
- Viewable by: Everyone (if public access enabled)
- Editable by: Owner and admins
- Checkout: Simplified process
SQLite:
# Use SQLCipher for encrypted database
# Install SQLCipher
sudo apt install sqlcipher
# Encrypt existing database
sqlcipher data/rolodrawer.db
> ATTACH DATABASE 'data/rolodrawer_encrypted.db' AS encrypted KEY 'your-encryption-key';
> SELECT sqlcipher_export('encrypted');
> DETACH DATABASE encrypted;MySQL: Enable encryption at rest:
-- In my.cnf
[mysqld]
early-plugin-load=keyring_file.so
keyring_file_data=/var/lib/mysql-keyring/keyring
-- Create encrypted tablespace
CREATE TABLESPACE encrypted_space ENCRYPTION='Y';
ALTER TABLE files TABLESPACE encrypted_space;Encrypt uploaded files:
- Go to Admin > Settings > File Storage
- Enable Encrypt Uploaded Files
- Choose encryption method:
- AES-256-CBC
- AES-256-GCM (recommended)
- Set encryption key (store securely!)
- Files are encrypted on upload, decrypted on download
Limit access by IP address:
- Go to Admin > Settings > Security
- Enable IP Whitelist
- Add allowed IP addresses or ranges:
192.168.1.0/24 10.0.0.0/8 203.0.113.50 - Admins can always access from any IP
- Regular users restricted to whitelist
Configure alerting:
- Go to Admin > Settings > Alerts
- Enable Failed Login Alerts
- Set threshold: 5 failed attempts in 15 minutes
- Actions:
- Email admin
- Lock account temporarily
- Require CAPTCHA for that IP
Monitor for:
- Mass file exports
- Rapid checkouts
- Permission changes outside business hours
- Access from new locations/devices
- Bulk deletions
Configure alerts to notify admins immediately.
SQLite:
# Vacuum database (reclaim space, optimize)
sqlite3 data/rolodrawer.db "VACUUM;"
# Analyze for query optimization
sqlite3 data/rolodrawer.db "ANALYZE;"
# Check integrity
sqlite3 data/rolodrawer.db "PRAGMA integrity_check;"MySQL:
-- Optimize tables
OPTIMIZE TABLE files, users, locations, cabinets, drawers;
-- Analyze for query optimization
ANALYZE TABLE files, users, locations;
-- Check and repair
CHECK TABLE files;
REPAIR TABLE files;Run weekly via cron:
# Crontab entry
0 4 * * 0 /usr/local/bin/optimize_database.shClear application cache:
-
Via Web Interface:
- Go to Admin > System > Clear Cache
- Select cache types to clear
- Confirm
-
Via Command Line:
# Clear all caches rm -rf cache/* # Clear specific cache rm -rf cache/views/* rm -rf cache/data/*
- Go to Admin > System > Updates
- Click Check for Updates
- View available updates:
- Version number
- Release date
- Change log
- Security fixes included
Pre-update checklist:
- Create full system backup
- Review change log
- Schedule maintenance window
- Notify users of downtime
Update process:
- Enable maintenance mode
- Download update package
- Extract to temporary directory
- Run update script
- Test critical functions
- Disable maintenance mode
- Monitor for issues
Command line update:
# Enable maintenance mode
touch maintenance.flag
# Backup first
./backup.sh
# Download update
wget https://releases.rolodrawer.com/updates/v1.0.1.zip
# Extract and apply
unzip v1.0.1.zip
./update.sh
# Disable maintenance mode
rm maintenance.flagMonitor key metrics:
- Go to Admin > System > Performance
- View:
- Database size and growth
- Active users
- Average response time
- Peak usage times
- Storage usage
- Failed jobs/errors
Identify slow queries:
-
Enable query logging:
// In config.php $config['log_slow_queries'] = true; $config['slow_query_threshold'] = 1000; // 1 second
-
Review slow query log:
- Go to Admin > System > Slow Queries
- See queries taking >1 second
- Identify optimization opportunities
-
Add indexes if needed:
-- Example: Index on file owner CREATE INDEX idx_files_owner ON files(owner_id); -- Index on cabinet location CREATE INDEX idx_cabinets_location ON cabinets(location_id);
Find and clean up orphaned records:
- Go to Admin > System > Maintenance
- Run Find Orphaned Records
- Review results:
- Files with no location
- Drawers with no cabinet
- Tags with no files
- Checkouts with no file
- Choose action:
- Fix automatically
- Delete orphaned records
- Export for manual review
Clear temporary files regularly:
# Clear temp directory
find cache/temp/ -type f -mtime +7 -delete
# Clear old session files
find /var/lib/php/sessions -type f -mtime +30 -delete
# Clear old log files
find logs/ -name "*.log" -mtime +90 -deleteGenerate reports for auditors:
- Complete list of all files
- Current locations
- Sensitivity classifications
- Owners
- Checkout status
- All file access events
- User actions
- Date/time stamps
- IP addresses
- Files approaching retention limits
- Files overdue for review
- Archived files
- Destroyed files with certificates
Configure retention rules:
-
Go to Admin > Settings > Retention Policies
-
Create policy:
- Name: Financial Records
- Description: IRS requirement
- Retention Period: 7 years from creation
- Post-Retention Action: Archive then destroy
- Applies To: Files tagged "Financial"
-
System automatically:
- Tracks file age
- Warns when approaching retention limit
- Triggers archive at retention date
- Queues for destruction after archive period
Place files on legal hold:
-
Go to Admin > Legal Holds
-
Create new hold:
- Case Name: Smith v. Company
- Case Number: 2026-CV-12345
- Hold Date: 2026-01-15
- Releasing Attorney: Jane Doe
-
Add files to hold:
- Search and select files
- Or use bulk import with file numbers
-
Files on legal hold:
- Cannot be archived
- Cannot be destroyed
- Marked with hold badge
- Separate reporting
-
Release hold when case closes:
- Enter release date and reason
- Files return to normal retention
Check:
- Account is active
- Password hasn't expired
- Account not locked from failed attempts
- User role has login permission
Solutions:
- Reset password
- Unlock account
- Verify email address
- Check IP restrictions
Check:
- File is not archived (unless "Include Archived" checked)
- User has permission to view sensitivity level
- Database index is intact
- Cache is current
Solutions:
# Rebuild search index
php scripts/rebuild_search_index.php
# Clear cache
rm -rf cache/*
# Check database integrity
sqlite3 data/rolodrawer.db "PRAGMA integrity_check;"Check:
- Database size
- Number of active users
- Server resources
- Missing indexes
- Slow queries
Solutions:
- Optimize database
- Add indexes
- Increase PHP memory limit
- Enable opcode caching
- Archive old files
Check:
- GD or Imagick extension installed
- Cache directory writable
- Temp directory writable
- PHP memory limit sufficient
Solutions:
# Install GD
sudo apt install php-gd
sudo systemctl restart apache2
# Check permissions
sudo chmod 775 cache/
sudo chown www-data:www-data cache/Recovery steps:
-
Assess damage
- What failed? (hardware, software, data)
- Is data recoverable?
- Do you have backups?
-
Restore from backup
- Get latest backup
- Provision new server if needed
- Restore database
- Restore uploaded files
- Restore configuration
-
Verify restoration
- Test database connection
- Verify user logins
- Check file access
- Test search
- Review audit logs
-
Resume operations
- Notify users
- Monitor for issues
- Document incident
If database corruption detected:
# SQLite
sqlite3 data/rolodrawer.db ".dump" > dump.sql
mv data/rolodrawer.db data/rolodrawer.db.corrupt
sqlite3 data/rolodrawer.db < dump.sql
# MySQL
mysqlcheck --repair --all-databases -u root -pAdd custom fields to files:
- Go to Admin > Settings > Custom Fields
- Click Add Field
- Configure:
- Field name
- Field type (text, number, date, dropdown)
- Required or optional
- Default value
- Help text
- Field appears on file creation/edit forms
Enable API for integrations:
- Go to Admin > Settings > API
- Enable API access
- Generate API keys for applications
- Set rate limits
- Monitor API usage
Configure webhooks for integrations:
- Go to Admin > Settings > Webhooks
- Add webhook:
- Trigger event (file created, checked out, etc.)
- Destination URL
- Authentication
- System POSTs JSON data on events
- Documentation: Included in this repository (README.md, INSTALLATION.md, USER_GUIDE.md, ADMIN_GUIDE.md)
- Source Code: https://github.com/AI3I/RoloDrawer
- Community: https://github.com/AI3I/RoloDrawer/discussions
RoloDrawer is proprietary software. For help:
- Check the documentation (README.md, USER_GUIDE.md, ADMIN_GUIDE.md)
- Review GitHub issues: https://github.com/AI3I/RoloDrawer/issues
- Community discussions: https://github.com/AI3I/RoloDrawer/discussions
Train your users:
- Schedule group training sessions
- Provide user guide (USER_GUIDE.md)
- Create quick reference cards
- Record video tutorials for common tasks
Last updated: January 2026 - Version 1.0.1