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