UnityDorm is a simple landing page and blog platform designed as a central hub for community members. Users can create "shortcuts" displayed as small icons in the upper section to quickly access frequently used links. Additionally, there is a feature for writing and publishing blog articles.
Note: This is in development and may have bugs or incomplete features. Feel free to contribute to the project by submitting pull requests or issues.
- Description: Shortcuts are small icons in the upper section of the page, serving as quick links to external resources.
- Customization: Each shortcut can have a title, an image, and a link that can open in a new tab.
- Purpose: Shortcuts provide easy access to frequently used links for the community and offer a clear structure.
- Description: Users can write and publish blog articles organized into various categories.
- Customization: Blog articles have a title, a short description, and detailed content. An image and a category can be added for each post.
- Purpose: The blog feature provides a platform for sharing news, opinions, or other content with the community.
The article text can be written in Markdown format, allowing for easy formatting and styling. Then the content is rendered as HTML on the frontend.
This screenshot shows the homepage with shortcuts and blog articles, an article with detailed content, and the admin panel for managing articles.
- Clone the repository:
git clone https://github.com/Friedjof/UnityDorm.git
- Install the required dependencies:
pip install -r requirements.txt
- Run migrations:
python manage.py migrate
- Start the server:
python manage.py runserver
DJANGO_SECRET_KEY='<your_secret_key>' # Generate a new secret key
DJANGO_DEBUG='True' # Set to 'False' in production
DJANGO_ALLOWED_HOSTS='<your_domain>,localhost' # Add your domain here (comma-separated values)
DJANGO_SUPERUSER_USERNAME='<your_username>' # Create a superuser with these credentials
DJANGO_SUPERUSER_EMAIL='<your_email>' # (for accessing the admin interface)
DJANGO_SUPERUSER_PASSWORD='<your_password>' # (use a strong password)
TLS_ACTIVE='True' # Set to 'False' to disable HTTPS
You can use the prebuilt Docker image from the GitHub Container Registry:
docker pull ghcr.io/friedjof/unitydorm:latest
Here is an example docker-compose.yml
configuration:
services:
unitydorm:
image: ghcr.io/friedjof/unitydorm:latest
ports:
- "8000:8000"
environment:
- DJANGO_SECRET_KEY='<your_secret_key>'
- DJANGO_DEBUG='True'
- DJANGO_ALLOWED_HOSTS='<your_domain>,localhost'
- DJANGO_SUPERUSER_USERNAME='<your_username>'
- DJANGO_SUPERUSER_EMAIL='<your_email>'
- DJANGO_SUPERUSER_PASSWORD='<your_password>'
- TLS_ACTIVE='True'
volumes:
- ./data:/data
- ./uploads:/uploads
restart: always
- Admin Interface: The admin interface allows you to manage shortcuts and blog articles. Log in at
/admin
to add shortcuts or create and edit blog articles. - Homepage: The homepage displays a list of shortcuts and blog articles. Users can access relevant content through the links in the header section.
Here are the available make
commands for the project:
- migrations: Creates new migration files.
- migrate: Runs database migrations.
- requirements: Updates
requirements.txt
with the current dependencies. - build: Builds the Docker image without cache.
- up: Starts the Docker container.
- down: Stops the Docker container.
- logs: Shows logs of the Docker container.
- restart: Stops and restarts the container.
- demo: Runs
build
andup
in sequence. - clean: Stops the container and cleans up unused Docker images.
- release: Creates a new release version (including Git tagging and push).
- version: Updates
version.txt
with the latest Git tag. - admin: Creates a new Django superuser.
- shell: Starts the Django shell.
Contributions are welcome! Feel free to submit a pull request if you have any improvements or new features to suggest.
This project is licensed under the GPL-3.0 license. For more details, see the LICENSE file.
Enjoy using UnityDorm! 🎉