Skip to content

Commit

Permalink
added more vps services, added github readmes to college society proj…
Browse files Browse the repository at this point in the history
…ects
  • Loading branch information
CheeseLad committed Aug 13, 2024
1 parent f9a944a commit 98e8c83
Show file tree
Hide file tree
Showing 12 changed files with 308 additions and 8 deletions.
2 changes: 1 addition & 1 deletion docs/homelab/devices.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
## Phone

- **Model**: Apple iPhone 13 Pro
- **OS**: iOS 17.5.1
- **OS**: iOS 17.6.1
- **Offsite Backup**: iCloud 200GB
- **Local Backup**: [Homelab](info.md)

Expand Down
3 changes: 2 additions & 1 deletion docs/homelab/info.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ My homelab consists of a Dell Optiplex 5060 running Debian 12 that was saved fro
- [Sonarr](./services/sonarr.md)
- [Speedtest-Tracker](https://github.com/henrywhitaker3/Speedtest-Tracker)
- [Tautulli](./services/tautulli.md)
- [The Experiment (My Discord Bot)](https://github.com/CheeseLad/the-experiment/)
- [The Experiment](https://github.com/CheeseLad/the-experiment/)
- [Traefik](https://traefik.io/)
- [Uptime Kuma](./services/uptime-kuma.md)

## Services (Native)
Expand Down
8 changes: 7 additions & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,16 @@

This is a collection of documentation for various projects and services that I have worked on. This documentation is a work in progress and will be updated as I work on new projects and services.

## Information & Configuration Files

- [Homelab & VPS Dashboard](https://home.jakefarrell.ie)
- [Homelab Configuration Repository](https://github.com/CheeseLad/homelab)
- [VPS Configuration Repository](https://github.com/CheeseLad/vps)

## Website Sections

- [Homelab](homelab/info.md)
- [VPS](vps/info.md)
- [Projects](projects/email-system.md)

Documentation inspiration from [James Hackett](https://docs.james-hackett.ie/)
Documentation inspiration from [James Hackett](https://docs.james-hackett.ie)
19 changes: 15 additions & 4 deletions docs/vps/info.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,23 @@ This VPS is used to host various services and applications that I use on a daily

## Services (Docker)

- [CA298 PizzaShop](services/ca298-pizzashop.md)
- [CA298 UniversitySystem](services/ca298-universitysystem.md)
- [Clubs & Socs API](services/clubsandsocs-api.md)
- [MySQL Database](services/mysql-database.md)
- [DCU Fotosoc Website](services/dcufotosoc-website.md)
- [DCU Media Production Society Website](services/dcumps-website.md)
- [Flame](https://home.jakefarrell.ie/)
- [Zipline](http://i.jakefarrell.ie/)
- [Plausible](http://plausible.jakefarrell.ie/)
- [Shlink](http://shlink.jakefarrell.ie/)
- [Personal Website](http://www.jakefarrell.ie/)
- [Portainer](https://portainer.jakefarrell.ie/)
- [Plausible](services/plausible-analytics.md)
- [Shlink](services/shlink.md)
- [Personal Website](services/personal-website.md)
- [Portainer](services/portainer.md)
- [Traefik](https://traefik.io/)
- [MediaWiki](https://www.mediawiki.org/)
- [Redbrick Email Generator](https://redbrick.dcu.ie)

## Services (Native)

- [PiVPN](https://www.pivpn.io/)
- [Rclone](https://rclone.org/)
29 changes: 28 additions & 1 deletion docs/vps/services/dcufotosoc-website.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,29 @@
# DCU Fotosoc Website

## Description

*Full Stack Website Built For DCU Fotosoc - DCU's Photography Society (Website currently in development)*

### Tech Stack Used:
- React
- TailwindCSS
- Firebase
- MongoDB, Express (Deprecated)
- Nginx
- Docker
- [Clubs & Socs API](https://github.com/CheeseLad/clubsandsocs-api)
- Stripe API

### Website Content & Features:
- Society information, contact details & social media accounts list
- User auth, account creation for members to make their own personal photography portfolio
- Easily update the website's gallery using a form that is restricted to specific users
- Store page powered by the Stripe API to allow members to purchase merch and photo books
- Automated event information from my custom [Clubs & Socs API](https://github.com/CheeseLad/clubsandsocs-api)
- Testimonials from members and photo of the week display
- View the slides from previous Fotosoc workshops
- Meet the committee page with committee history and contact information

## Docker Compose File

```yaml
Expand All @@ -13,6 +37,9 @@ services:
- "traefik.enable=true"
- "traefik.http.routers.dcufotosoc-website.entrypoints=https"
- "traefik.http.routers.dcufotosoc-website.rule=Host(`dcufotosoc.jakefarrell.ie`)"
volumes:
- ./env-config.js:/usr/share/nginx/html/env-config.js


networks:
default:
Expand All @@ -22,4 +49,4 @@ networks:
## Notes
- Access thee DCU Fotosoc website here: [`https://dcufotosoc.jakefarrell.ie`](https://dcufotosoc.jakefarrell.ie)
- Access the DCU Fotosoc website here: [`https://dcufotosoc.jakefarrell.ie`](https://dcufotosoc.jakefarrell.ie)
24 changes: 24 additions & 0 deletions docs/vps/services/dcumps-website.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,29 @@
# DCU Media Production Society Website

## Description

*Full Stack Website Built For DCU Media Production Society*

### Tech Stack Used:
- Django
- Python
- Bootstrap
- JavaScript
- SQLite
- Docker
- [Clubs & Socs API](https://github.com/CheeseLad/clubsandsocs-api)
- WordPress REST API

### Website Content & Features:
- Society information, contact details & social media accounts list
- Preview of latest articles from [thecollegeview.ie](https://thecollegeview.ie) using the WordPress REST API
- Blog system containing 2018-2021 blogs imported from Squarespace with sharing options
- Automated event information from my custom [Clubs & Socs API](https://github.com/CheeseLad/clubsandsocs-api)
- Automated querying of YouTube videos
- Twitch stream with automated radio show timetable
- Sponsor list & testimonials
- Meet the committee page with committee video, committee history and contact information

## Docker Compose File

```yaml
Expand Down
30 changes: 30 additions & 0 deletions docs/vps/services/mysql-database.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# MySQL Database

## Description

This service is used to host a MySQL database for various applications and services.

## Docker Compose File

```yaml
services:
database:
image: mysql:8.3.0
hostname: database
container_name: database
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql

volumes:
mysql_data:

```

## Notes

- Used across multiple containers
52 changes: 52 additions & 0 deletions docs/vps/services/personal-website.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Personal Website

## Description

*My personal portfolio website*


### Tech Stack Used:
- Svelte
- TailwindCSS
- Docker

### Website Content & Features:
- Contact Information
- Recent Projects
- Related Experience
- Tech Stack

## Docker Compose File

```yaml
services:
portfolio-svelte:
image: ghcr.io/cheeselad/portfolio-svelte:latest
container_name: portfolio-svelte
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.portfolio-svelte.entrypoints=https"
- "traefik.http.routers.portfolio-svelte.rule=Host(`portfolio.jakefarrell.ie`)"
- "traefik.http.routers.personal-site.entrypoints=https"
- "traefik.http.routers.personal-site.rule=Host(`www.jakefarrell.ie`)"
- "traefik.http.routers.personal-site-base-url.entrypoints=https"
- "traefik.http.routers.personal-site-base-url.rule=Host(`jakefarrell.ie`)"

watchtower-portfolio-svelte:
image: containrrr/watchtower
container_name: watchtower-portfolio-svelte
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 600

networks:
default:
name: traefik_net
external: true
```
## Notes
- Access my Personal Website here: [`https://jakefarrell.ie`](https://jakefarrell.ie)
58 changes: 58 additions & 0 deletions docs/vps/services/plausible-analytics.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Plausible Analytics

## Docker Compose File

```yaml
services:
plausible_db:
image: postgres:14-alpine
restart: unless-stopped
volumes:
- db-data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=${PLAUSIBLE_DB_PASSWORD}

plausible_events_db:
image: clickhouse/clickhouse-server:24.3.3.102-alpine
restart: unless-stopped
volumes:
- event-data:/var/lib/clickhouse
- ./clickhouse/clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro
- ./clickhouse/clickhouse-user-config.xml:/etc/clickhouse-server/users.d/logging.xml:ro
ulimits:
nofile:
soft: 262144
hard: 262144

plausible:
image: ghcr.io/plausible/community-edition:v2.1.1
container_name: plausible
restart: unless-stopped
command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run"
depends_on:
- plausible_db
- plausible_events_db
env_file:
- plausible-conf.env
labels:
- "traefik.enable=true"
- "traefik.http.routers.plausible.entrypoints=https"
- "traefik.http.routers.plausible.rule=Host(`plausible.jakefarrell.ie`)"
- "traefik.http.services.plausible.loadbalancer.server.port=8000"

volumes:
db-data:
driver: local
event-data:
driver: local

networks:
default:
name: traefik_net
external: true

```

## Notes

- Access Plausible Analytics here: [`https://plausible.jakefarrell.ie`](https://plausible.jakefarrell.ie)
33 changes: 33 additions & 0 deletions docs/vps/services/portainer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Portainer

## Docker Compose File

```yaml
services:
portainer:
container_name: portainer
hostname: portainer
image: portainer/portainer-ce:latest
volumes:
- ./data:/data
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.portainer.rule=Host(`portainer.jakefarrell.ie`)"
- "traefik.http.routers.portainer.entrypoints=https"
- "traefik.http.services.portainer.loadbalancer.server.port=9000"
- "traefik.http.routers.portainer.service=portainer"

volumes:
data:

networks:
default:
name: traefik_net
external: true
```
## Notes
- Access Portainer here: [`https://portainer.jakefarrell.ie`](https://portainer.jakefarrell.ie)
53 changes: 53 additions & 0 deletions docs/vps/services/shlink.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Shlink

## Description

Shlink is a self-hosted URL shortener that allows you to shorten URLs and serve them under your own domain. The application is built using PHP and MySQL and is designed to be lightweight and easy to use.

## Docker Compose File

```yaml
services:
shlink:
image: shlinkio/shlink:stable
restart: unless-stopped
container_name: shlink
environment:
- TZ="Europe/Dublin"
- DEFAULT_DOMAIN=s.jakefarrell.ie
- IS_HTTPS_ENABLED=true
- GEOLITE_LICENSE_KEY=${GEOLITE_LICENSE_KEY}
- DB_DRIVER=mysql
- DB_USER=${DB_USER}
- DB_NAME=${DB_NAME}
- DB_PASSWORD=${DB_PASSWORD}
- DB_HOST=${DB_HOST}
- SHELL_VERBOSITY=3
labels:
- "traefik.enable=true"
- "traefik.http.routers.shlink.entrypoints=https"
- "traefik.http.routers.shlink.rule=Host(`s.jakefarrell.ie`)"

shlink-web-client:
image: shlinkio/shlink-web-client
restart: unless-stopped
container_name: shlink-web-client
volumes:
- ./servers.json:/usr/share/nginx/html/servers.json
depends_on:
- shlink
labels:
- "traefik.enable=true"
- "traefik.http.routers.shlink-gui.entrypoints=https"
- "traefik.http.routers.shlink-gui.rule=Host(`shlink.jakefarrell.ie`)"

networks:
default:
name: traefik_net
external: true

```

## Notes

- Access Shlink here: [`https://shlink.jakefarrell.ie`](https://shlink.jakefarrell.ie)
5 changes: 5 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@ nav:
- Clubs & Socs API: vps/services/clubsandsocs-api.md
- DCU Fotosoc Website: vps/services/dcufotosoc-website.md
- DCU Media Production Society Website: vps/services/dcumps-website.md
- MySQL Database: vps/services/mysql-database.md
- Personal Website: vps/services/personal-website.md
- Plausible Analytics: vps/services/plausible-analytics.md
- Portainer: vps/services/portainer.md
- Shlink URL Shortener: vps/services/shlink.md
#- Redbrick:
# - Redbrick Information: redbrick/redbrick.md
# - Email Generator: redbrick/email-generator.md
Expand Down

0 comments on commit 98e8c83

Please sign in to comment.