initial
This commit is contained in:
commit
21ee1776b5
17
Dockerfile
Normal file
17
Dockerfile
Normal file
@ -0,0 +1,17 @@
|
||||
FROM phusion/baseimage:0.11
|
||||
|
||||
# Use baseimage-docker's init system.
|
||||
CMD ["/sbin/my_init"]
|
||||
|
||||
ADD setup.sh /tmp/setup.sh
|
||||
|
||||
# install stuff to image
|
||||
RUN bash /tmp/setup.sh
|
||||
|
||||
ADD ./rootfs /
|
||||
|
||||
RUN chmod +x /usr/local/bin/* /etc/service/*/run
|
||||
|
||||
VOLUME /state
|
||||
|
||||
EXPOSE 3000 4000
|
4
Makefile
Normal file
4
Makefile
Normal file
@ -0,0 +1,4 @@
|
||||
default: build
|
||||
|
||||
build:
|
||||
docker build -t sneak/mastodon .
|
13
README.md
Normal file
13
README.md
Normal file
@ -0,0 +1,13 @@
|
||||
# true single-container mastodon
|
||||
|
||||
don't ever host things anywhere but on your own domain.
|
||||
|
||||
this violates all the docker best practices and puts the whole-ass app inside a single container (including redis and postgres!) so that you can easily bring up a sef-hosted mastodon on things like caprover in a single "app" without having to worry about cross-container links.
|
||||
|
||||
i really just wanted a one-command single-user mastodon.
|
||||
|
||||
# credits
|
||||
|
||||
all praise to wonderfall's single-container mastodon:
|
||||
|
||||
https://github.com/Wonderfall/docker-mastodon
|
80
setup.sh
Normal file
80
setup.sh
Normal file
@ -0,0 +1,80 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -x
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
MRUM="main restricted universe multiverse"
|
||||
M="mirror://mirrors.ubuntu.com/mirrors.txt"
|
||||
cat > /etc/apt/sources.list <<EOF
|
||||
deb $M bionic $MRUM
|
||||
deb $M bionic-updates $MRUM
|
||||
deb $M bionic-security $MRUM
|
||||
deb $M bionic-backports $MRUM
|
||||
EOF
|
||||
|
||||
# these instructions are cribbed from
|
||||
# https://docs.joinmastodon.org/administration/installation/
|
||||
|
||||
# this is fine, totally secure, nothing to see here
|
||||
curl -sL https://deb.nodesource.com/setup_8.x | bash -
|
||||
|
||||
# same here
|
||||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
|
||||
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
|
||||
|
||||
apt update
|
||||
|
||||
apt install -y \
|
||||
autoconf \
|
||||
bison \
|
||||
build-essential \
|
||||
daemontools \
|
||||
ffmpeg \
|
||||
file \
|
||||
g++ \
|
||||
gcc \
|
||||
git-core \
|
||||
imagemagick \
|
||||
libffi-dev \
|
||||
libgdbm-dev \
|
||||
libgdbm5 \
|
||||
libicu-dev \
|
||||
libidn11-dev \
|
||||
libjemalloc-dev \
|
||||
libncurses5-dev \
|
||||
libpq-dev \
|
||||
libprotobuf-dev \
|
||||
libreadline6-dev \
|
||||
libssl-dev \
|
||||
libxml2-dev \
|
||||
libxslt1-dev \
|
||||
libyaml-dev \
|
||||
nginx \
|
||||
nodejs \
|
||||
pkg-config \
|
||||
postgresql \
|
||||
postgresql-contrib \
|
||||
protobuf-compiler \
|
||||
redis-server \
|
||||
redis-tools \
|
||||
yarn \
|
||||
zlib1g-dev
|
||||
|
||||
addgroup -g 991 mastodon
|
||||
useradd --uid 991 --gid 991 -m -d /mastodon mastodon
|
||||
|
||||
exit 0
|
||||
|
||||
su - mastodon <<'EOF'
|
||||
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
|
||||
cd ~/.rbenv && src/configure && make -C src
|
||||
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
|
||||
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
|
||||
source ~/.bashrc
|
||||
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
|
||||
RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 2.6.1
|
||||
rbenv global 2.6.1
|
||||
gem update --system
|
||||
gem install bundler --no-document
|
||||
EOF
|
Loading…
Reference in New Issue
Block a user