A comprehensive Content Management System built with Django and Vue.js that can manage any kind of file on your disk.
- File System Management: Browse, upload, download, and manage files and directories
- Access Control: Public/private file visibility and user ownership
- File Operations: Copy, move, delete, and rename files
- Office integratable: Can integrate onlyoffice document-server
- Access Logging: Track file access, downloads, and modifications
- RESTful API: Full API for frontend integration
- Admin Interface: Django admin for system management
Here are some screenshots of the SimpleCMS interface:
- Python 3.8+
- Node.js 20.19.0+ (for frontend and electron)
- Virtual environment
- Django 5.2+
-
Activate virtual environment:
source venv/bin/activate -
Install dependencies:
cd backend pip install -r requirements.txt -
Run migrations:
python manage.py makemigrations python manage.py migrate
-
Create superuser:
python manage.py createsuperuser
-
Run development server:
python manage.py runserver localhost:8000
-
Build web application:
cd frontend && npm install VITE_API_BASE_URL=http://localhost:8000 npm run dev
-
Build electron application (optional):
cd electron && npm install VITE_API_BASE_URL=http://localhost:8000 npm run build
For detailed production deployment instructions, please refer to the Deployment Guide.
curl -X GET "http://localhost:8000/api/files/" \
-H "Authorization: Basic $(echo -n 'admin:password' | base64)"curl -X GET "http://localhost:8000/api/files/search/?q=document" \
-H "Authorization: Basic $(echo -n 'admin:password' | base64)"curl -X GET "http://localhost:8000/api/files/tree/?root=/home/username" \
-H "Authorization: Basic $(echo -n 'admin:password' | base64)"curl -X POST "http://localhost:8000/api/upload/" \
-H "Authorization: Basic $(echo -n 'admin:password' | base64)" \
-F "file=@/path/to/local/file.txt" \
-F "destination_path=/home/username/uploads" \
-F "tags=work,important" \
-F "is_public=false"The main settings are in backend/backend/settings.py:
- CORS: Configured for Vue.js frontend
- File Upload: 100MB maximum file size
- Media Files: Served from
/media/directory - REST Framework: Pagination, authentication, and permissions
Scans the filesystem and populates the database:
python manage.py scan_filesystem --helpOptions:
--path: Root directory to scan--user: Username to assign as owner--max-depth: Maximum directory depth--dry-run: Preview without making changes



