finish vps post
parent
4d7cc09a27
commit
e46f087db3
|
@ -8,4 +8,127 @@ tags:
|
|||
layout: layouts/post.njk
|
||||
---
|
||||
|
||||
A few months ago I made a [post](https://blog.crimsontome.com/posts/PVE/) on Proxmox and what I run/ran on my physical home server, and whilst I have now fixed my hardware issues (by geting completely different hardware) I am yet to recreate all my VMs on that machine. So in the meantime, using my [GitHub Student](https://education.github.com/pack) credits I have setup a VPS with [DigitalOcean](https://www.digitalocean.com/products/droplets).
|
||||
A few months ago I made a [post](https://blog.crimsontome.com/posts/PVE/) on Proxmox and what I run/ran on my physical home server, and whilst I have now fixed my hardware issues (by geting completely different hardware) I am yet to recreate all my VMs on that machine. So in the meantime, using my [GitHub Student](https://education.github.com/pack) credits I have setup a VPS with [DigitalOcean](https://www.digitalocean.com/products/droplets).
|
||||
|
||||
## What I run
|
||||
|
||||
### Blog
|
||||
|
||||
My blog (what you are currently reading) is hosted on my droplet using [11ty](https://www.11ty.dev/) and [Docker](https://www.docker.com/). It is essentially the same as what I have done previously except instead of deploying to netlify I have Docker build the site and expose it on my server with this Dockerfile
|
||||
```dockerfile
|
||||
FROM node:10-alpine3.9 as npmpackages
|
||||
WORKDIR /app
|
||||
COPY package.json .
|
||||
RUN npm install
|
||||
|
||||
FROM node:10-alpine3.9 as builder
|
||||
WORKDIR /app
|
||||
COPY --from=npmpackages /app /app
|
||||
COPY . .
|
||||
RUN npm run build
|
||||
|
||||
FROM nginx:1.17.10-alpine
|
||||
RUN rm -r /usr/share/nginx/html/
|
||||
COPY --from=builder /app/_site/ /usr/share/nginx/html/
|
||||
|
||||
EXPOSE 5000
|
||||
```
|
||||
|
||||
### Git server
|
||||
|
||||
My Git server at https://git.crimsontome.com (as reccomended by a good friend [Starbeamrainbowlabs](https://starbeamrainbowlabs.com/)) is created using [Gitea](https://gitea.io/en-us/). I use it to host most of my private repositories and store backups of some important repos from GtiHub, just in case. I had some issues setting this up in a Docker container so i just run the standalone package.
|
||||
|
||||
### Links
|
||||
|
||||
https://links.crimsontome.com is created from a [littlelink](https://github.com/techno-tim/littlelink-server) container. It is an open-source self-hosted alternative to services like LinkTree. It contains links to most of my public services and is ran through this docker-compose file
|
||||
```dockerfile
|
||||
version: "3.0"
|
||||
services:
|
||||
littlelink-server:
|
||||
image: ghcr.io/techno-tim/littlelink-server:latest
|
||||
# dockerhub is also supported timothystewart6/littlelink-server
|
||||
# image: timothystewart6/littlelink-server:latest
|
||||
container_name: littlelink-server
|
||||
environment:
|
||||
- META_TITLE=CrimsonTome
|
||||
- META_DESCRIPTION=Linux Sysadmin and FOSS Enthusiast
|
||||
- META_AUTHOR=CrimsonTome
|
||||
- LANG=en
|
||||
- META_INDEX_STATUS=all
|
||||
- OG_SITE_NAME=CrimsonTome
|
||||
- OG_TITLE=CrimsonTome
|
||||
- OG_DESCRIPTION=The home of CrimsonTome
|
||||
- OG_URL=https://crimsontome.com
|
||||
- GA_TRACKING_ID=G-XXXXXXXXXX
|
||||
- THEME=Dark
|
||||
- AVATAR_URL=https://https://avatars.githubusercontent.com/u/64846840?v=4
|
||||
- AVATAR_2X_URL=https://https://avatars.githubusercontent.com/u/64846840?v=4
|
||||
- AVATAR_ALT=
|
||||
- NAME=CrimsonTome
|
||||
- BIO=The home of CrimsonTomes links
|
||||
# use ENV variable names for order, listed buttons will be boosted to the top
|
||||
- BUTTON_ORDER=YOUTUBE,TWITCH,TWITTER,GITHUB,INSTAGRAM,DISCORD,FACEBOOK,TIKTOK,PATREON,GEAR,DOCUMENTATION
|
||||
# you can render an unlimited amount of custom buttons by adding
|
||||
# the CUSTOM_BUTTON_* variables and by using a comma as a separator.
|
||||
- CUSTOM_BUTTON_TEXT=Blog,LinkedIn, Git Service, PasteBin Service
|
||||
- CUSTOM_BUTTON_URL=https://blog.crimsontome.com,https://www.linkedin.com/in/matt-clark-aa776b1b4/,https://git.crimsontome.com,https://paste.crimsontome.com
|
||||
- CUSTOM_BUTTON_COLOR=#000000,#000000,#000000,#000000
|
||||
- CUSTOM_BUTTON_TEXT_COLOR=#ffffff,#ffffff,#ffffff,#ffffff
|
||||
- CUSTOM_BUTTON_ALT_TEXT=My blog,LinkedIn,Gitea,PrivateBin
|
||||
- CUSTOM_BUTTON_NAME=BLOG,LinkedIn,Gitea,PrivateBin
|
||||
- CUSTOM_BUTTON_ICON=fas file-alt,fas file-alt,fas file-alt,fas file-alt
|
||||
- GITHUB=https://github.com/crimsontome
|
||||
- TWITTER=https://twitter.com/ctome427
|
||||
- YOUTUBE=https://www.youtube.com/channel/UCrxIJeb-FW_rFBQ19LRZSaQ
|
||||
- FOOTER=CrimsonTome © 2022
|
||||
|
||||
ports:
|
||||
- 8090:3000
|
||||
restart: unless-stopped
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
```
|
||||
|
||||
### Nginx Proxy Mangager
|
||||
|
||||
[Nginx Proxy Manager](https://nginxproxymanager.com/) is a project that 'comes as a pre-built docker image that enables you to easily forward to your websites running at home or otherwise, including free SSL, without having to know too much about Nginx or Letsencrypt'
|
||||
|
||||
```dockerfile
|
||||
version: '3'
|
||||
services:
|
||||
app:
|
||||
image: 'jc21/nginx-proxy-manager:latest'
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- '80:80'
|
||||
- '81:81'
|
||||
- '443:443'
|
||||
volumes:
|
||||
- ./data:/data
|
||||
- ./letsencrypt:/etc/letsencrypt
|
||||
```
|
||||
|
||||
You can also use it to lock sites that don't come with their own authenticattion. You can read about how to do that [here](https://blog.crimsontome.com/posts/locking-sites-with-nginx-proxy-manager/)
|
||||
|
||||
### PrivateBin server
|
||||
|
||||
Whilst currently not fully functional, https://paste.crimsontome.com hosts my [PrivateBin](https://privatebin.info/) instance. Like most of my services it runs inside a docker container
|
||||
```dockerfile
|
||||
docker run -d --restart="always" --read-only -p 8080:8080 -v $PWD/privatebin-data:/srv/data privatebin/nginx-fpm-alpine
|
||||
```
|
||||
|
||||
### Dashy
|
||||
|
||||
[Dashy](https://dashy.to/) can be ran in a docker container, but some plugins *do not* work whilst Dashy is in one, so I am using npm to build and serve it instead. Once you are done setting up dashy
|
||||
|
||||
```
|
||||
git clone https://github.com/Lissy93/dashy.git
|
||||
cd dashy
|
||||
# make your changes to public/conf
|
||||
npm run build
|
||||
npm run start
|
||||
```
|
||||
|
||||
### Server metrics with NetData
|
||||
|
||||
I use [NetData](https://github.com/netdata/netdata) to provide server metrics for my dashboard such as CPU, Memory and disk usage, alognside many others
|
Loading…
Reference in New Issue