Added documentation for Upgrades and Recovery
This commit is contained in:
		
							parent
							
								
									b7ebd15d83
								
							
						
					
					
						commit
						a0b7b4af90
					
				
					 1 changed files with 70 additions and 8 deletions
				
			
		
							
								
								
									
										78
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										78
									
								
								README.md
									
										
									
									
									
								
							| 
						 | 
					@ -18,6 +18,9 @@
 | 
				
			||||||
    - [Clone \& configure initially](#clone--configure-initially)
 | 
					    - [Clone \& configure initially](#clone--configure-initially)
 | 
				
			||||||
    - [Fist run](#fist-run)
 | 
					    - [Fist run](#fist-run)
 | 
				
			||||||
  - [Upgrade](#upgrade)
 | 
					  - [Upgrade](#upgrade)
 | 
				
			||||||
 | 
					    - [Test](#test)
 | 
				
			||||||
 | 
					    - [Prod](#prod)
 | 
				
			||||||
 | 
					  - [Disaster recovery / restore](#disaster-recovery--restore)
 | 
				
			||||||
  - [Rebuild containers locally](#rebuild-containers-locally)
 | 
					  - [Rebuild containers locally](#rebuild-containers-locally)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Prerequisites
 | 
					## Prerequisites
 | 
				
			||||||
| 
						 | 
					@ -164,8 +167,6 @@ sed -i -e 's/^#duration_expr/duration_expr/g' /etc/crowdsec/profiles.yaml \
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Setup notifications:
 | 
					Setup notifications:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Installation
 | 
					## Installation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Clone & configure initially
 | 
					### Clone & configure initially
 | 
				
			||||||
| 
						 | 
					@ -209,13 +210,74 @@ docker compose build --no-cache \
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Upgrade
 | 
					## Upgrade
 | 
				
			||||||
 | 
					
 | 
				
			||||||
1. Update `AUTHENTIK_TAG` to the desired tag in `env.template`.
 | 
					### Test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. Update `AUTHENTIK_TAG` to the desired tag in `env.test.template`.
 | 
				
			||||||
2. Commit & push changes to the Repo.
 | 
					2. Commit & push changes to the Repo.
 | 
				
			||||||
3. Run `diff --color='auto' env.template .env` to display the diff between
 | 
					3. Run `diff --color='auto' env.test.template .env` to display the diff between
 | 
				
			||||||
`env.template` and `.env`.
 | 
					`env.test.template` and `.env`.
 | 
				
			||||||
4. Port the made changes to `.env`.
 | 
					1. Port the made changes to `.env`.
 | 
				
			||||||
5. `docker compose down`
 | 
					2. `docker-compose-2.32.4 down`
 | 
				
			||||||
6. `docker compose up -d; docker compose logs -f`
 | 
					3. `docker-compose-2.32.4 up -d; docker-compose-2.32.4 logs -f`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Prod
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. Update `AUTHENTIK_TAG` to the desired tag in `env.prod.template`.
 | 
				
			||||||
 | 
					2. Commit & push changes to the Repo.
 | 
				
			||||||
 | 
					3. Run `diff --color='auto' env.prod.template .env` to display the diff between
 | 
				
			||||||
 | 
					`env.prod.template` and `.env`.
 | 
				
			||||||
 | 
					1. Port the made changes to `.env`.
 | 
				
			||||||
 | 
					2. `docker compose down`
 | 
				
			||||||
 | 
					3. `docker compose up -d; docker compose logs -f`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Disaster recovery / restore
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**IMPORTANT:**  
 | 
				
			||||||
 | 
					You've to use different docker cli clients on prod/test.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Prod
 | 
				
			||||||
 | 
					  - Docker: `docker`
 | 
				
			||||||
 | 
					  - Docker compose: `docker compose`
 | 
				
			||||||
 | 
					- Test
 | 
				
			||||||
 | 
					  - Docker: `docker`
 | 
				
			||||||
 | 
					  - Docker compose: `docker-compose-2.32.4`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For the ease of readability I'll use `docker` and `docker compose` in the documentation below,
 | 
				
			||||||
 | 
					please repalce it for restores on test!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. Run the restore cli
 | 
				
			||||||
 | 
					   ```shell
 | 
				
			||||||
 | 
					   docker compose run --rm restore-cli
 | 
				
			||||||
 | 
					   ```
 | 
				
			||||||
 | 
					2. Run the restore command and follow it's instructions
 | 
				
			||||||
 | 
					   ```shell
 | 
				
			||||||
 | 
					   restore
 | 
				
			||||||
 | 
					   ```
 | 
				
			||||||
 | 
					3. If the restore was successfull, exit the restore container.  
 | 
				
			||||||
 | 
					   **DO NOT START THE APPLICATION YET!**
 | 
				
			||||||
 | 
					4. Run the PostgreSQL container without starting the main application
 | 
				
			||||||
 | 
					   ```shell
 | 
				
			||||||
 | 
					    docker compose run --rm postgresql
 | 
				
			||||||
 | 
					   ```
 | 
				
			||||||
 | 
					5. Open another shell in the sso git directory.
 | 
				
			||||||
 | 
					6. Execute a shell in the running PostgreSQL container (replace `<containerid>` with the actual container id)
 | 
				
			||||||
 | 
					   ```shell
 | 
				
			||||||
 | 
					   docker exec -it sso-base23-de-postgresql-run-<containerid> bash
 | 
				
			||||||
 | 
					   ```
 | 
				
			||||||
 | 
					7. If the database already contains data, delete an recreate it:
 | 
				
			||||||
 | 
					   ```shell
 | 
				
			||||||
 | 
					   dropdb -U ${PG_USER:-authentik} ${PG_DB:-authentik}
 | 
				
			||||||
 | 
					   createdb -U ${PG_USER:-authentik} ${PG_DB:-authentik}
 | 
				
			||||||
 | 
					   ```
 | 
				
			||||||
 | 
					8. Restore the database
 | 
				
			||||||
 | 
					   ```shell
 | 
				
			||||||
 | 
					   psql ${PG_USER:-authentik} -d ${PG_DB:-authentik} -f /var/lib/postgresql/backups/authentik.sql
 | 
				
			||||||
 | 
					   ````
 | 
				
			||||||
 | 
					9. After the database is restored, exit the container
 | 
				
			||||||
 | 
					10. Now it's safe to start the complete application stack again
 | 
				
			||||||
 | 
					    ```shell
 | 
				
			||||||
 | 
					    docker compose up -d; docker compose logs -f
 | 
				
			||||||
 | 
					    ```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Rebuild containers locally
 | 
					## Rebuild containers locally
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue