mirror of
				https://gitea.invidious.io/iv-org/invidious
				synced 2025-06-05 23:29:12 +02:00 
			
		
		
		
	basic docker-compose cluster
This commit is contained in:
		
							
								
								
									
										21
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | |||||||
|  | version: '3' | ||||||
|  | services: | ||||||
|  |   postgres: | ||||||
|  |     build: | ||||||
|  |       context: . | ||||||
|  |       dockerfile: docker/Dockerfile.postgres | ||||||
|  |     restart: unless-stopped | ||||||
|  |     volumes: | ||||||
|  |       - postgresdata:/var/lib/postgresql/data | ||||||
|  |   invidious: | ||||||
|  |     build: | ||||||
|  |       context: . | ||||||
|  |       dockerfile: docker/Dockerfile | ||||||
|  |     restart: unless-stopped | ||||||
|  |     ports: | ||||||
|  |       - "3000:3000" | ||||||
|  |     depends_on: | ||||||
|  |       - postgres | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   postgresdata: | ||||||
							
								
								
									
										15
									
								
								docker/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								docker/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | FROM archlinux/base | ||||||
|  |  | ||||||
|  | RUN pacman -Sy --noconfirm shards crystal imagemagick librsvg \ | ||||||
|  |     which pkgconf gcc ttf-liberation | ||||||
|  | # base-devel contains many other basic packages, that are normally assumed to already exist on a clean arch system | ||||||
|  |  | ||||||
|  | ADD . /invidious | ||||||
|  |  | ||||||
|  | WORKDIR /invidious | ||||||
|  |  | ||||||
|  | RUN sed -i 's/host: localhost/host: postgres/' config/config.yml && \ | ||||||
|  |     shards && \ | ||||||
|  |     crystal build src/invidious.cr | ||||||
|  |  | ||||||
|  | CMD [ "/invidious/invidious" ] | ||||||
							
								
								
									
										10
									
								
								docker/Dockerfile.postgres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								docker/Dockerfile.postgres
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | FROM postgres:10 | ||||||
|  |  | ||||||
|  | ENV POSTGRES_USER postgres | ||||||
|  |  | ||||||
|  | ADD ./setup.sh /setup.sh | ||||||
|  | ADD ./config/sql /config/sql | ||||||
|  | ADD ./docker/entrypoint.postgres.sh /entrypoint.sh | ||||||
|  |  | ||||||
|  | ENTRYPOINT [ "/entrypoint.sh" ] | ||||||
|  | CMD [ "postgres" ] | ||||||
							
								
								
									
										19
									
								
								docker/entrypoint.postgres.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										19
									
								
								docker/entrypoint.postgres.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,19 @@ | |||||||
|  | #!/usr/bin/env bash | ||||||
|  |  | ||||||
|  | CMD="$@" | ||||||
|  | if [ ! -f /var/lib/postgresql/data/setupFinished ]; then | ||||||
|  |     echo "### first run - setting up invidious database" | ||||||
|  |     /usr/local/bin/docker-entrypoint.sh postgres & | ||||||
|  |     sleep 10 | ||||||
|  |     until runuser -l postgres -c 'pg_isready' 2>/dev/null; do | ||||||
|  |         >&2 echo "### Postgres is unavailable - waiting" | ||||||
|  |         sleep 5 | ||||||
|  |     done | ||||||
|  |     >&2 echo "### importing table schemas" | ||||||
|  |     su postgres -c "/setup.sh" && touch /var/lib/postgresql/data/setupFinished | ||||||
|  |     echo "### invidious database setup finished" | ||||||
|  |     exit | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | echo "running postgres /usr/local/bin/docker-entrypoint.sh $CMD" | ||||||
|  | exec /usr/local/bin/docker-entrypoint.sh $CMD | ||||||
							
								
								
									
										3
									
								
								setup.sh
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								setup.sh
									
									
									
									
									
								
							| @@ -1,7 +1,8 @@ | |||||||
| #!/bin/bash | #!/bin/bash | ||||||
|  |  | ||||||
| createdb invidious | createdb invidious | ||||||
| createuser kemal | #createuser kemal | ||||||
|  | psql -c "CREATE USER kemal WITH PASSWORD 'kemal';" | ||||||
| psql invidious < config/sql/channels.sql | psql invidious < config/sql/channels.sql | ||||||
| psql invidious < config/sql/videos.sql | psql invidious < config/sql/videos.sql | ||||||
| psql invidious < config/sql/channel_videos.sql | psql invidious < config/sql/channel_videos.sql | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user