Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/miikanissi/christinanissi.com
Art / Writing portfolio website made in Django with Bootstrap. Deployed with Docker, Gunicorn, PostgreSQL and NGINX.
https://github.com/miikanissi/christinanissi.com
bootstrap django docker-compose personal-website poetry
Last synced: 9 days ago
JSON representation
Art / Writing portfolio website made in Django with Bootstrap. Deployed with Docker, Gunicorn, PostgreSQL and NGINX.
- Host: GitHub
- URL: https://github.com/miikanissi/christinanissi.com
- Owner: miikanissi
- License: agpl-3.0
- Created: 2022-09-13T00:25:42.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-10-15T23:07:50.000Z (about 1 month ago)
- Last Synced: 2024-11-02T07:41:58.613Z (16 days ago)
- Topics: bootstrap, django, docker-compose, personal-website, poetry
- Language: Python
- Homepage: https://christinanissi.com
- Size: 1.47 MB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# [christinanissi.com](https://christinanissi.com)
Art / Writing portfolio website for Christina Nissi made in
[Django](https://www.djangoproject.com/) with [Bootstrap](https://getbootstrap.com/).
Deployed in production with [Docker](https://www.docker.com/),
[Gunicorn](https://gunicorn.org/), [PostgreSQL](https://www.postgresql.org/) and
[NGINX](https://www.nginx.com/). Project dependencies managed with
[Poetry](https://python-poetry.org/).## Features
- Create art or writing content posts
- Homepage with masonry grid of latest content
- Contact page with contact form
- About page
- Responsive design for mobile devices
- RSS feed of all contents
- Search Engine Optimized (SEO) with sitemap, image compression etc.
- CI/CD with [pre-commit](https://pre-commit.com/) checks.
- Gunigorn WSGI server running inside a docker container and served behind an NGINX
reverse proxy
- Dependencies managed with Poetry## Installation
Requirements are automatically installed by building the docker image. Docker engine and
docker compose required. In order to install dependencies and run the server outside of
docker container the requirements can be installed using `poetry install` inside the
`src/` directory.To deploy in production a running NGINX service is required on the host server.
### Development
1. Clone the repository and navigate inside the project root.
2. Copy `.example.env.dev` to `.env.dev` and `.example.env.dev.db` to `.env.dev.db`.
Update the desired environment variables.
3. Build the images and run the containers:```sh
docker compose up -d --build
```Navigate to [http://localhost:8000](http://localhost:8000). The `src` directory is
mounted into the container and code changes will apply automatically.### Production
1. Clone the repository and navigate inside the project root.
2. Copy `.example.env.prod` to `.env.prod` and `.example.env.prod.db` to `.env.prod.db`.
Update the desired environment variables.
3. Build the images and run the containers:```sh
docker compose -f docker-compose.prod.yml up -d --build
```4. Setup NGINX reverse proxy by adding a new configuration file to
`/etc/nginx/sites-available/`. Example configuration (replace variables inside _<>_):```
server {
listen 80;
listen [::]:80;server_name ;
location / {
proxy_pass http://localhost:8005;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}location /static/ {
alias /src/staticfiles;
}location /media/ {
alias /src/mediafiles;
}
}
```5. Install [Certbot](https://certbot.eff.org/). Then create HTTPS certificates:
```sh
certbot --nginx
```## Live Website
View the project live at [https://christinanissi.com](https://christinanissi.com).