forked from toolshed/docs.coopcloud.tech
		
	Add @nikobee's setup/troubleshooting tips
This commit is contained in:
		@ -4,7 +4,9 @@ title: Deploy your first app
 | 
			
		||||
 | 
			
		||||
In order to deploy an app you need two things:
 | 
			
		||||
 | 
			
		||||
1. a server (e.g. [Hetzner VPS](https://www.hetzner.com/cloud))
 | 
			
		||||
1. a server (e.g. [Hetzner VPS](https://www.hetzner.com/cloud)), with
 | 
			
		||||
    - SSH access
 | 
			
		||||
    - a public IP address
 | 
			
		||||
2. a DNS provider (e.g. [Gandi](https://www.gandi.net/en))
 | 
			
		||||
 | 
			
		||||
## Create your server
 | 
			
		||||
@ -36,6 +38,12 @@ sudo apt-get update
 | 
			
		||||
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
You'll probably want to add your user to the `docker` group:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
usermod -a -G docker myusername
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Bootstrap `abra`
 | 
			
		||||
 | 
			
		||||
Once your DNS and docker daemon are up, you can install [`abra`](https://git.autonomic.zone/autonomic-cooperative/abra) locally on your developer machine and hook it up to your server.
 | 
			
		||||
@ -72,13 +80,17 @@ abra server add example.com
 | 
			
		||||
 | 
			
		||||
Where `example.com` is replaced with your server DNS name.
 | 
			
		||||
 | 
			
		||||
!!! note
 | 
			
		||||
!!! note "About SSH"
 | 
			
		||||
    `abra` uses Docker's built-in SSH support to make a secure connection to a
 | 
			
		||||
    remote Docker daemon, to deploy and manage apps from your local development
 | 
			
		||||
    machine.
 | 
			
		||||
 | 
			
		||||
    `abra server add` accepts also a `<user>` and `<port>` arguments for your
 | 
			
		||||
    custom SSH connection details. What is happening here is that you are using
 | 
			
		||||
    the underlying SSH machinery to make a secure connection to the server
 | 
			
		||||
    installed Docker daemon. This allows `abra` to run remote deployments from
 | 
			
		||||
    your local development machine.
 | 
			
		||||
    If you need to specify a non-standard port, and/or different username, for SSH,
 | 
			
		||||
    add them as extra arguments:
 | 
			
		||||
 | 
			
		||||
    ```bash
 | 
			
		||||
    abra server add example.com username 2222
 | 
			
		||||
    ```
 | 
			
		||||
 | 
			
		||||
Once you've added the sever, you can initialise the [new single-host swarm](https://docs.docker.com/engine/swarm/key-concepts/).
 | 
			
		||||
 | 
			
		||||
@ -102,7 +114,6 @@ and follow the instructions.
 | 
			
		||||
<node id>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
You will now have a new `~/.abra/` folder on your local file system which stores all the configuration of your Co-op Cloud instance. You can easily share this as a git repository with others.
 | 
			
		||||
 | 
			
		||||
## Deploy Traefik
 | 
			
		||||
@ -121,7 +132,7 @@ You will want to take a look at your generated configuration and tweak the `LETS
 | 
			
		||||
abra app traefik config
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
This is the required environment variables that you can configure and are injected into the app configuration when deployed.
 | 
			
		||||
Every app you deploy will have one of these `.env` files, which contains variables which will be injected into app configurations when deployed. Variables starting with `#` are optional, others are required.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
abra app traefik deploy
 | 
			
		||||
@ -131,12 +142,7 @@ If you get a message like this:
 | 
			
		||||
```bash
 | 
			
		||||
ERROR: https://traefik.example.com still isn't up, check status by running "abra app traefik ps"
 | 
			
		||||
```
 | 
			
		||||
It might need a few seconds more to start up. We can then check that everything came up as expected.
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
abra app traefik ps   # status check
 | 
			
		||||
abra app traefik logs # logs watch
 | 
			
		||||
```
 | 
			
		||||
then it might need a few seconds more to start up. You can run `abra app traefik ps`, as suggested, to see when it's ready – look for `Running` under `CURRENT STATUS` – or `abra app traefik logs` to see app logs.
 | 
			
		||||
 | 
			
		||||
## Deploy Nextcloud
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										35
									
								
								docs/troubleshooting.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								docs/troubleshooting.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
			
		||||
---
 | 
			
		||||
title: Troubleshooting
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
## SSH / connection problems
 | 
			
		||||
 | 
			
		||||
Assuming:
 | 
			
		||||
- Hostname: `coopcloud.example.com`
 | 
			
		||||
- User: `username`
 | 
			
		||||
- Port: `222`
 | 
			
		||||
 | 
			
		||||
### Step 1: Can you SSH to the server normally?
 | 
			
		||||
 | 
			
		||||
Does `ssh username@coopcloud.example.com -p2222` work?
 | 
			
		||||
 | 
			
		||||
If not, run through your standard oh-no-why-doesn't-SSH-work troubleshooting 🍀.
 | 
			
		||||
 | 
			
		||||
### Step 2: Can you run remote Docker commands over SSH?
 | 
			
		||||
 | 
			
		||||
Does `ssh username@coopcloud.example.com -p2222 docker ps` work?
 | 
			
		||||
 | 
			
		||||
If not:
 | 
			
		||||
- Is the remote Docker daemon running?
 | 
			
		||||
- Is your user in the `docker` group?
 | 
			
		||||
 | 
			
		||||
### Step 3: Does your Docker context work?
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
[user@hostname ~]$ DOCKER_CONTEXT=coopcloud.example.com docker ps
 | 
			
		||||
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
If you get an error message instead:
 | 
			
		||||
- Use `abra server ls` / `docker context ls` to double-check the SSH connection details
 | 
			
		||||
- Try removing the context with `docker context rm coopcloud.example.com`, then re-add it
 | 
			
		||||
@ -51,6 +51,7 @@ nav:
 | 
			
		||||
      - Roll an app back to a previous version: rollback.md
 | 
			
		||||
  - Strategy: strategy.md
 | 
			
		||||
  - Roadmap: roadmap.md
 | 
			
		||||
  - Troubleshooting: troubleshooting.md
 | 
			
		||||
  - Managed Hosting: managed.md
 | 
			
		||||
  - Get in touch: contact.md
 | 
			
		||||
  - Acknowledgements: credits.md
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user