I just want something as a proof of concept that this can be for me. I am aware I am the problem.
But everything is wildly difficult for me. I pulled back from docker after realising it was above my skillset, I just want to try home assisstant with a few lights but fair enough it is beyond me.
I opted to install a game, fail. Learn about wine and bottles. Start a bottle and get told I only have 8gb free in directory, I cannot for the life of me see where it is getting that from.
Please god someone tell me there is a step by step for the fucking imbeciles out there on where to start!?
Ok, lots of answers focusing on the game, so I think you have plenty of suggestions on what to try there. That being said I have never heard of bottles, I’ve used raw wine and PlayOnLinux before Steam integrated Proton so now I just use that.
For docker it can be daunting, and home assistant is not an easy thing to setup. The thing with docker is that it can be very complex, but you don’t have to worry about the majority of it. I assume you have docker installed, enabled and your user is in the correct groups. Unfortunately Mint/Ubuntu don’t have docker in their normal repos so you probably had to add the docker PPA and install from there. Let’s run a couple of commands to ensure all went well:
sudo systemctl status docker
This should show you the status of the docker daemon, and it should say that it is Active. If you get a no such service type error then docker is not installed, if it’s not shown as active then the daemon is not started and can be done so by running
sudo systemctl start docker
(and you can replace start with enable for it to happen at boot). If it’s Active then awesome, let’s check that your used can run docker commands, try running this:docker run hello-world
if that fails butsudo docker run hello-world
works then your user doesn’t have access, you want to add your user to the docker groupsudo usermod -aG docker $USER
and reboot.Ok, docker hello world is working, what now? Now, I assume you have some idea of what docker is, but in a (wrong but simple) way you can think of it as virtual machines. Let’s try to run some cool stuff in it, there are two main ways, running a long complicated command, or writing those parameters on a file and running a simple command. This file is called a compose file, and should be named
compose.yaml
ordocker-compose.yaml
. let’s try that, create a folder calledsilverbullet
(just because that’s the service we will try, it is a note taking app that I really like) and in there create a filecompose.yaml
and write the following content there (everything starting with#
is a comment I added explaining what that does, and can be removed if you don’t want it):# This defines all of the services we want to run services: # This is the name of the service, it can be whatever you want silverbullet: # The image is the actual thing you want to run image: ghcr.io/silverbulletmd/silverbullet # This tells docker to restart the service if it closed for whatever reason, unless you specifically tell it to stop restart: unless-stopped # This will set environment variables inside the docker. # different services might require different environment variables set environment: # silver bullet uses SB_USER environment variable to set user/password for the main account. We're setting user to admin and password to 123 here - SB_USER=admin:123 # This maps outside folders to inside folders so that your docker container can access them volumes: # Here we're telling it that the ./data folder should be accessible in the /space folder inside the docker # silver bullet stores stuff in the /space folder, so by mapping it to the ./data folder we can keep that data between runs - ./data:/space # This tells docker to map ports from the inside to your host machine, this allows you to access the docker container as if it were running on your machine ports: # This tells it to map the internal port 3000 to the external port 5000, so accessing http://localhost:5000/ from your machine will in fact access the same as http://localhost:3000/ inside docker # Silver bullet runs on port 3000, so we need to expose that port - 5000:3000
Uff, that was a lot, but we’re done, now just run
docker compose up -d
(up to start -d to run as a daemon, i.e. in the background) and you should be able to access http://localhost:5000/ and get to Silver bullet logging in with admin 123, then if you write about something you will see files appearing in thesilverbullet/data
folder.I know that this was a lot in one go, but I chose Silver bullet because it touches all of the most common stuff you’ll need and it’s easy to get going.
Good luck with your self hosting journey, and don’t hesitate to ask if you have any questions.