mirror of
https://memleak.eu/sn0w/pleroma-docker.git
synced 2024-12-22 00:18:47 -05:00
Init repo
This commit is contained in:
commit
d5ad29eef4
1
.dockerignore
Normal file
1
.dockerignore
Normal file
@ -0,0 +1 @@
|
||||
data
|
12
.env.dist
Normal file
12
.env.dist
Normal file
@ -0,0 +1,12 @@
|
||||
# The docker network to bind to.
|
||||
# (Useful for reverse-proxies outside of this compose).
|
||||
DOCKER_NETWORK=
|
||||
|
||||
# The directory where all containers store their data.
|
||||
# Can be a relative path, "~/...", or absolute.
|
||||
DOCKER_DATADIR=
|
||||
|
||||
# Database settings
|
||||
POSTGRES_DB=
|
||||
POSTGRES_USER=
|
||||
POSTGRES_PASSWORD=
|
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
data
|
||||
.env
|
6
.gitmodules
vendored
Normal file
6
.gitmodules
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
[submodule "pleroma"]
|
||||
path = pleroma
|
||||
url = git@git.pleroma.social:pleroma/pleroma.git
|
||||
[submodule "camo"]
|
||||
path = camo
|
||||
url = https://github.com/atmos/camo.git
|
39
docker-compose.yml
Normal file
39
docker-compose.yml
Normal file
@ -0,0 +1,39 @@
|
||||
version: "3"
|
||||
|
||||
networks:
|
||||
default:
|
||||
external:
|
||||
name: ${DOCKER_NETWORK}
|
||||
|
||||
services:
|
||||
db:
|
||||
image: postgres:10.3-alpine
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_DB: ${POSTGRES_DB}
|
||||
POSTGRES_USER: ${POSTGRES_USER}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
volumes:
|
||||
- ${DOCKER_DATADIR}/db:/var/lib/postgresql/data
|
||||
|
||||
server:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: ./pleroma.dockerfile
|
||||
restart: unless-stopped
|
||||
links:
|
||||
- db
|
||||
environment:
|
||||
POSTGRES_IP: db
|
||||
POSTGRES_DB: ${POSTGRES_DB}
|
||||
POSTGRES_USER: ${POSTGRES_USER}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
PLEROMA_WORKSPACE: /pleroma
|
||||
MIX_ARCHIVES: /mix/archives
|
||||
MIX_HOME: /mix/home
|
||||
volumes:
|
||||
- ./pleroma:/pleroma
|
||||
- ${DOCKER_DATADIR}/pleroma:/data
|
||||
- ${DOCKER_DATADIR}/mix:/mix
|
||||
- ${DOCKER_DATADIR}/misc/cache:/root/.cache
|
||||
- ${DOCKER_DATADIR}/misc/meta:/meta
|
46
entrypoint.ash
Executable file
46
entrypoint.ash
Executable file
@ -0,0 +1,46 @@
|
||||
#!/bin/ash
|
||||
|
||||
set -e
|
||||
|
||||
function action__build {
|
||||
mix local.hex --force
|
||||
mix local.rebar --force
|
||||
mix deps.get
|
||||
mix compile
|
||||
}
|
||||
|
||||
function action__configure {
|
||||
mix generate_config
|
||||
}
|
||||
|
||||
function action__run {
|
||||
if [[ ! -f /meta/ECTO_REPO_CREATED ]]; then
|
||||
mix ecto.create
|
||||
touch /meta/ECTO_REPO_CREATED
|
||||
fi
|
||||
|
||||
mix ecto.migrate
|
||||
exec mix phx.server
|
||||
}
|
||||
|
||||
if [[ -z "$1" ]]; then
|
||||
echo "No action provided."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -z "$PLEROMA_WORKSPACE" ]]; then
|
||||
echo "Please set the PLEROMA_WORKSPACE variable to your pleroma root."
|
||||
exit 1
|
||||
fi
|
||||
cd $PLEROMA_WORKSPACE
|
||||
|
||||
case "$1" in
|
||||
build) action__build;;
|
||||
configure) action__configure;;
|
||||
run) action__run;;
|
||||
*)
|
||||
echo "The action '$1' is invalid."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift
|
1
pleroma
Submodule
1
pleroma
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 8f9bcc4ab0b16efa9168f49f6e2cc14bc424d398
|
10
pleroma.dockerfile
Normal file
10
pleroma.dockerfile
Normal file
@ -0,0 +1,10 @@
|
||||
FROM elixir:1.6-alpine
|
||||
|
||||
RUN apk add --no-cache --virtual .build alpine-sdk git
|
||||
|
||||
ADD ./entrypoint.sh /
|
||||
RUN chmod +x /entrypoint.sh
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
CMD ["run"]
|
||||
|
||||
EXPOSE 4000
|
89
pleroma.sh
Executable file
89
pleroma.sh
Executable file
@ -0,0 +1,89 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
function log_generic { # $1: color, $2: prefix, $3: message #
|
||||
echo -e "[$(tput setaf $1)$(tput bold)$2$(tput sgr0)] $3"
|
||||
}
|
||||
|
||||
function log_error { # $1: message #
|
||||
log_generic 1 ERR "$1"
|
||||
}
|
||||
|
||||
function log_ok { # $1: message #
|
||||
log_generic 2 "OK " "$1"
|
||||
}
|
||||
|
||||
function log_info { # $1: message #
|
||||
log_generic 4 INF "$1"
|
||||
}
|
||||
|
||||
function print_help {
|
||||
echo "
|
||||
Pleroma Maintenance Script
|
||||
|
||||
Usage:
|
||||
$0 [action] [flags...]
|
||||
|
||||
Actions:
|
||||
build Build the pleroma container and all dependencies
|
||||
configure Runs the interactive configuration script
|
||||
run Start pleroma and sibling services
|
||||
stop Stop pleroma and sibling services
|
||||
"
|
||||
}
|
||||
|
||||
function run_dockerized {
|
||||
log_info "Stopping existing containers (if any)..."
|
||||
docker-compose down
|
||||
|
||||
log_info "Rebuilding images..."
|
||||
docker-compose build
|
||||
|
||||
log_info "Running action '$1'..."
|
||||
docker-compose run server $1
|
||||
|
||||
log_info "Cleaning up.."
|
||||
docker-compose down
|
||||
}
|
||||
|
||||
function action__build {
|
||||
run_dockerized "build"
|
||||
log_ok "Done"
|
||||
}
|
||||
|
||||
function action__configure {
|
||||
run_dockerized "configure"
|
||||
log_ok "Done"
|
||||
}
|
||||
|
||||
function action__run {
|
||||
log_info "Booting pleroma..."
|
||||
docker-compose up --remove-orphans -d
|
||||
log_ok "Done"
|
||||
}
|
||||
|
||||
function action__stop {
|
||||
log_info "Stopping pleroma..."
|
||||
docker-compose down
|
||||
log_ok "Done"
|
||||
}
|
||||
|
||||
if [[ -z "$1" ]]; then
|
||||
log_error "No action provided."
|
||||
print_help
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
build) action__build;;
|
||||
configure) action__configure;;
|
||||
run) action__run;;
|
||||
stop) action__stop;;
|
||||
*)
|
||||
log_error "The action '$1' is invalid."
|
||||
print_help
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift
|
Loading…
Reference in New Issue
Block a user