Example appliances removed, only base and default preserved
The sample appliances have been removed as I do not use them and therefore cannot support them.
This commit is contained in:
parent
b2d2b0265f
commit
955be9cc46
|
@ -1,49 +0,0 @@
|
|||
APP_ROOT := /var/lib/airport
|
||||
AIRPORT_REPO ?= https://bitbucket.org/marduk/airport
|
||||
AIRPORT_BRANCH ?= stable
|
||||
PGVER := 10
|
||||
repo := $(CHROOT)/$(APP_ROOT)
|
||||
etc_issue := $(CHROOT)/etc/issue
|
||||
services := $(wildcard *.service)
|
||||
service_targets := $(patsubst %,$(CHROOT)/etc/systemd/system/%,$(services))
|
||||
|
||||
$(CHROOT)/etc/systemd/system/%.service: %.service
|
||||
cp $< $@
|
||||
RUN systemctl enable $<
|
||||
|
||||
$(etc_issue): issue
|
||||
cp $< $@
|
||||
|
||||
$(repo):
|
||||
hg clone -u $(AIRPORT_BRANCH) $(AIRPORT_REPO) $@
|
||||
|
||||
preinstall:
|
||||
|
||||
postinstall: settings.py issue nginx.conf $(service_targets) $(repo) $(etc_issue)
|
||||
RUN eselect postgresql set $(PGVER)
|
||||
rm -rf $(CHROOT)/var/lib/postgresql/$(PGVER)
|
||||
RUN bash -c "echo y |$(EMERGE) --config postgresql:$(PGVER)"
|
||||
RUN systemctl enable postgresql-$(PGVER)
|
||||
RUN $(EMERGE) --oneshot --noreplace $(USEPKG) dev-python/setuptools dev-python/virtualenv
|
||||
rm -rf $(CHROOT)/$(APP_ROOT)
|
||||
hg clone -u $(AIRPORT_BRANCH) $(AIRPORT_REPO) $(CHROOT)/$(APP_ROOT)
|
||||
chroot $(CHROOT) virtualenv -p /usr/bin/python3 $(APP_ROOT)
|
||||
RUN $(APP_ROOT)/bin/pip install -r $(APP_ROOT)/requirements.txt
|
||||
RUN $(APP_ROOT)/bin/pip install psycopg2 uwsgi
|
||||
COPY settings.py /$(APP_ROOT)/djangoproject/djangoproject
|
||||
RUN id -u airport >/dev/null || RUN useradd -d $(APP_ROOT) -M -U -G postgres airport
|
||||
RUN chown -R airport:airport $(APP_ROOT)
|
||||
ifdef AIRPORT_SERIES
|
||||
cat settings_$(AIRPORT_SERIES).py >> $(CHROOT)/$(APP_ROOT)/djangoproject/djangoproject/settings.py
|
||||
RUN cp /$(APP_ROOT)/djangoproject/airport/fixtures/$(AIRPORT_SERIES).json \
|
||||
/$(APP_ROOT)/djangoproject/airport/fixtures/initial_data.json
|
||||
endif
|
||||
$(M4) -D HOSTNAME=$(HOSTNAME) nginx.conf > $(CHROOT)/etc/nginx/nginx.conf
|
||||
RUN gpasswd -a nginx airport
|
||||
RUN systemctl enable airport-wsgi.service
|
||||
RUN systemctl enable airport-gameserver.service
|
||||
RUN $(EMERGE) --depclean --with-bdeps=n
|
||||
|
||||
|
||||
clean:
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
[Unit]
|
||||
Description=Airport Game Server
|
||||
Documentation=https://bitbucket.org/marduk/airport/
|
||||
Requires=airport-pre.service
|
||||
After=airport-pre.service
|
||||
After=airport-wsgi.service
|
||||
|
||||
[Service]
|
||||
User=airport
|
||||
Environment=PYTHONPATH=/var/lib/airport/djangoproject
|
||||
Environment=DJANGO_SETTINGS_MODULE=djangoproject.settings
|
||||
WorkingDirectory=/var/lib/airport
|
||||
ExecStart=/var/lib/airport/bin/python djangoproject/manage.py gameserver --verbosity=2
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
|
@ -1,16 +0,0 @@
|
|||
[Unit]
|
||||
Description=Airport (Pre)
|
||||
Documentation=https://bitbucket.org/marduk/airport/
|
||||
Requires=postgresql-10.service
|
||||
After=postgresql-10.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
User=airport
|
||||
Environment=PYTHONPATH=/var/lib/airport/djangoproject
|
||||
Environment=DJANGO_SETTINGS_MODULE=djangoproject.settings
|
||||
WorkingDirectory=/var/lib/airport
|
||||
ExecStart=-/usr/bin/createuser -U postgres -D -S -R airport
|
||||
ExecStart=-/usr/bin/createdb -U postgres airport
|
||||
ExecStart=/var/lib/airport/bin/python djangoproject/manage.py migrate auth --noinput
|
||||
ExecStart=/var/lib/airport/bin/python djangoproject/manage.py migrate --noinput
|
|
@ -1,22 +0,0 @@
|
|||
[Unit]
|
||||
Description=Airport WSGI Server
|
||||
Documentation=https://bitbucket.org/marduk/airport/
|
||||
Requires=airport-pre.service
|
||||
After=airport-pre.service
|
||||
Wants=nginx.service
|
||||
|
||||
[Service]
|
||||
Type=notify
|
||||
User=airport
|
||||
WorkingDirectory=/var/lib/airport
|
||||
Environment=PYTHONPATH=/var/lib/airport/djangoproject
|
||||
Environment=DJANGO_SETTINGS_MODULE=djangoproject.settings
|
||||
ExecStart=/var/lib/airport/bin/uwsgi --master -p 4 \
|
||||
--socket=/var/lib/airport/airport.sock \
|
||||
--chmod=660 -w djangoproject.wsgi --uid=airport --gid=airport \
|
||||
--pidfile=/var/lib/airport/airport.pid
|
||||
PIDFile=/var/lib/airport/airport.pid
|
||||
KillSignal=SIGQUIT
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
|
@ -1,15 +0,0 @@
|
|||
[H[2J
|
||||
|
|
||||
|
|
||||
|
|
||||
_|_
|
||||
/___\\
|
||||
/_____\\
|
||||
/oo oo\\
|
||||
\\___________________________\\ /___________________________/
|
||||
`-----------|------|--------\\_____/--------|------|-----------'
|
||||
( ) ( ) O|OOo|oOO|O ( ) ( )
|
||||
------------------------------------------------------------------------------
|
||||
Airport Console
|
||||
------------------------------------------------------------------------------
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
# Settings for Airport
|
||||
PYTHON_TARGETS="python3_6"
|
||||
USE_PYTHON="3.6"
|
||||
NGINX_MODULES_HTTP="auth_basic gzip proxy referer rewrite headers_more uwsgi"
|
||||
INSTALL_MASK="$INSTALL_MASK /etc/nginx/nginx.conf /etc/issue"
|
|
@ -1,81 +0,0 @@
|
|||
user nginx nginx;
|
||||
worker_processes 1;
|
||||
|
||||
error_log /var/log/nginx/error_log info;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
use epoll;
|
||||
}
|
||||
|
||||
http {
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
log_format main
|
||||
'$remote_addr - $remote_user [$time_local] '
|
||||
'"$request" $status $bytes_sent '
|
||||
'"$http_referer" "$http_user_agent" '
|
||||
'"$gzip_ratio"';
|
||||
|
||||
client_header_timeout 10m;
|
||||
client_body_timeout 10m;
|
||||
send_timeout 10m;
|
||||
|
||||
connection_pool_size 256;
|
||||
client_header_buffer_size 1k;
|
||||
large_client_header_buffers 4 2k;
|
||||
request_pool_size 4k;
|
||||
|
||||
gzip on;
|
||||
gzip_min_length 1100;
|
||||
gzip_buffers 4 8k;
|
||||
gzip_types text/plain;
|
||||
|
||||
output_buffers 1 32k;
|
||||
postpone_output 1460;
|
||||
|
||||
sendfile on;
|
||||
tcp_nopush on;
|
||||
tcp_nodelay on;
|
||||
|
||||
keepalive_timeout 75 20;
|
||||
|
||||
ignore_invalid_headers on;
|
||||
|
||||
index index.html;
|
||||
|
||||
server {
|
||||
listen 0.0.0.0;
|
||||
server_name HOSTNAME;
|
||||
|
||||
location /static/ {
|
||||
alias /var/lib/airport/djangoproject/airport/static/;
|
||||
}
|
||||
|
||||
location / {
|
||||
uwsgi_pass unix:///var/lib/airport/airport.sock;
|
||||
include /etc/nginx/uwsgi_params;
|
||||
}
|
||||
|
||||
access_log /var/log/nginx/HOSTNAME.access_log main;
|
||||
error_log /var/log/nginx/HOSTNAME.error_log info;
|
||||
|
||||
root /var/www/localhost/htdocs;
|
||||
}
|
||||
|
||||
# SSL example
|
||||
#server {
|
||||
# listen 127.0.0.1:443;
|
||||
# server_name localhost;
|
||||
|
||||
# ssl on;
|
||||
# ssl_certificate /etc/ssl/nginx/nginx.pem;
|
||||
# ssl_certificate_key /etc/ssl/nginx/nginx.key;
|
||||
|
||||
# access_log /var/log/nginx/localhost.ssl_access_log main;
|
||||
# error_log /var/log/nginx/localhost.ssl_error_log info;
|
||||
|
||||
# root /var/www/localhost/htdocs;
|
||||
#}
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
app-eselect/eselect-postgresql **
|
||||
dev-db/postgresql:9.6 **
|
||||
dev-python/virtualenv **
|
||||
sys-kernel/gentoo-sources ~amd64 ~x86
|
|
@ -1,17 +0,0 @@
|
|||
app-editors/nano ncurses
|
||||
dev-lang/python ssl sqlite threads xml
|
||||
dev-libs/libpcre cxx
|
||||
dev-util/pkgconfig internal-glib
|
||||
net-misc/openssh ssl
|
||||
net-misc/wget ssl
|
||||
sys-apps/hwids udev
|
||||
sys-apps/kmod tools
|
||||
sys-apps/net-tools hostname
|
||||
sys-apps/portage ipc
|
||||
sys-auth/pambase nullok sha512
|
||||
sys-devel/gcc cxx nptl
|
||||
sys-kernel/gentoo-sources symlink
|
||||
sys-process/procps kill
|
||||
|
||||
dev-db/postgresql server
|
||||
www-servers/nginx http
|
|
@ -1,158 +0,0 @@
|
|||
# Django settings for djangoproject project.
|
||||
import os
|
||||
|
||||
ALLOWED_HOSTS = ['*']
|
||||
|
||||
DEBUG = True
|
||||
TEMPLATE_DEBUG = DEBUG
|
||||
|
||||
ADMINS = (
|
||||
('Your Name', 'your@email.com'),
|
||||
)
|
||||
|
||||
MANAGERS = ADMINS
|
||||
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
||||
'NAME': 'airport',
|
||||
'USER': 'airport',
|
||||
'PASSWORD': '',
|
||||
'HOST': '',
|
||||
'PORT': '',
|
||||
'CONN_MAX_AGE': None,
|
||||
}
|
||||
}
|
||||
|
||||
# Local time zone for this installation. Choices can be found here:
|
||||
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
|
||||
# although not all choices may be available on all operating systems.
|
||||
# On Unix systems, a value of None will cause Django to use the same
|
||||
# timezone as the operating system.
|
||||
# If running in a Windows environment this must be set to the same as your
|
||||
# system time zone.
|
||||
TIME_ZONE = 'America/New_York'
|
||||
|
||||
# Language code for this installation. All choices can be found here:
|
||||
# http://www.i18nguy.com/unicode/language-identifiers.html
|
||||
LANGUAGE_CODE = 'en-us'
|
||||
|
||||
SITE_ID = 1
|
||||
|
||||
# If you set this to False, Django will make some optimizations so as not
|
||||
# to load the internationalization machinery.
|
||||
USE_I18N = False
|
||||
|
||||
# If you set this to False, Django will not format dates, numbers and
|
||||
# calendars according to the current locale
|
||||
USE_L10N = True
|
||||
|
||||
# Absolute filesystem path to the directory that will hold user-uploaded files.
|
||||
# Example: "/home/media/media.lawrence.com/media/"
|
||||
MEDIA_ROOT = ''
|
||||
|
||||
# URL that handles the media served from MEDIA_ROOT. Make sure to use a
|
||||
# trailing slash.
|
||||
# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
|
||||
MEDIA_URL = ''
|
||||
|
||||
# Absolute path to the directory static files should be collected to.
|
||||
# Don't put anything in this directory yourself; store your static files
|
||||
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
|
||||
# Example: "/home/media/media.lawrence.com/static/"
|
||||
STATIC_ROOT = ''
|
||||
|
||||
# URL prefix for static files.
|
||||
# Example: "http://media.lawrence.com/static/"
|
||||
STATIC_URL = '/static/'
|
||||
|
||||
# URL prefix for admin static files -- CSS, JavaScript and images.
|
||||
# Make sure to use a trailing slash.
|
||||
# Examples: "http://foo.com/static/admin/", "/static/admin/".
|
||||
ADMIN_MEDIA_PREFIX = '/static/admin/'
|
||||
|
||||
# Additional locations of static files
|
||||
STATICFILES_DIRS = (
|
||||
# Put strings here, like "/home/html/static" or "C:/www/django/static".
|
||||
# Always use forward slashes, even on Windows.
|
||||
# Don't forget to use absolute paths, not relative paths.
|
||||
)
|
||||
|
||||
# List of finder classes that know how to find static files in
|
||||
# various locations.
|
||||
STATICFILES_FINDERS = (
|
||||
'django.contrib.staticfiles.finders.FileSystemFinder',
|
||||
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
|
||||
# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
|
||||
)
|
||||
|
||||
# Make this unique, and don't share it with anybody.
|
||||
SECRET_KEY = '5vv-a3_^4a5uk=88m-jow=62*nvo0)0nn)wh)^ea^l=-+o9zuv'
|
||||
|
||||
# List of callables that know how to import templates from various sources.
|
||||
TEMPLATE_LOADERS = (
|
||||
'django.template.loaders.filesystem.Loader',
|
||||
'django.template.loaders.app_directories.Loader',
|
||||
# 'django.template.loaders.eggs.Loader',
|
||||
)
|
||||
|
||||
TEMPLATE_CONTEXT_PROCESSORS = (
|
||||
'django.contrib.auth.context_processors.auth',
|
||||
'django.contrib.messages.context_processors.messages',
|
||||
'airport.context_processors.externals',
|
||||
'airport.context_processors.game_name',
|
||||
)
|
||||
|
||||
MIDDLEWARE_CLASSES = (
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
'django.middleware.csrf.CsrfViewMiddleware',
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
'django.contrib.messages.middleware.MessageMiddleware',
|
||||
)
|
||||
|
||||
ROOT_URLCONF = 'djangoproject.urls'
|
||||
|
||||
TEMPLATE_DIRS = (
|
||||
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
|
||||
# Always use forward slashes, even on Windows.
|
||||
# Don't forget to use absolute paths, not relative paths.
|
||||
)
|
||||
|
||||
INSTALLED_APPS = (
|
||||
'django.contrib.auth',
|
||||
'django.contrib.contenttypes',
|
||||
'django.contrib.sessions',
|
||||
#'django.contrib.sites',
|
||||
'django.contrib.messages',
|
||||
#'django.contrib.staticfiles',
|
||||
'django.contrib.humanize',
|
||||
'airport'
|
||||
)
|
||||
|
||||
# A sample logging configuration. The only tangible logging
|
||||
# performed by this configuration is to send an email to
|
||||
# the site admins on every HTTP 500 error.
|
||||
# See http://docs.djangoproject.com/en/dev/topics/logging for
|
||||
# more details on how to customize your logging configuration.
|
||||
LOGGING = {
|
||||
'version': 1,
|
||||
'disable_existing_loggers': False,
|
||||
'handlers': {
|
||||
'mail_admins': {
|
||||
'level': 'ERROR',
|
||||
'class': 'django.utils.log.AdminEmailHandler'
|
||||
}
|
||||
},
|
||||
'loggers': {
|
||||
'django.request': {
|
||||
'handlers': ['mail_admins'],
|
||||
'level': 'ERROR',
|
||||
'propagate': True,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
AIRPORT = {
|
||||
'GAMESERVER_MULTIPROCESSING': True,
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
|
||||
AIRPORT = {
|
||||
'GAME_NAME': 'Airport Europe',
|
||||
'SCALE_FLIGHT_TIMES': False,
|
||||
'GAMESERVER_MULTIPROCESSING': True,
|
||||
'CRUISE_SPEED': 13.0,
|
||||
'GAMESERVER_LOOP_DELAY': 3,
|
||||
'MAP_INITIAL_LATITUDE': 53.58,
|
||||
'MAP_INITIAL_LONGITUDE': 23.11,
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
dev-db/postgresql:10
|
||||
www-servers/nginx
|
|
@ -1,6 +1,3 @@
|
|||
preinstall:
|
||||
|
||||
postinstall:
|
||||
|
||||
clean:
|
||||
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
app-editors/nano ncurses
|
||||
dev-lang/python ssl threads xml
|
||||
dev-libs/libpcre cxx
|
||||
dev-util/pkgconfig internal-glib
|
||||
net-misc/openssh ssl
|
||||
net-misc/wget ssl
|
||||
sys-apps/hwids udev
|
||||
sys-apps/kmod tools
|
||||
sys-apps/net-tools hostname
|
||||
sys-apps/portage ipc
|
||||
sys-auth/pambase nullok sha512
|
||||
sys-devel/gcc cxx nptl
|
||||
sys-kernel/gentoo-sources symlink
|
||||
sys-process/procps kill
|
|
@ -0,0 +1,48 @@
|
|||
HARDENED = $(CHROOT)/var/tmp/hardened
|
||||
PAM_SSH_AGENT_AUTH = $(CHROOT)/var/tmp/pam_ssh_agent_auth
|
||||
ADMINUSER = $(CHROOT)/var/tmp/adminuser
|
||||
timesyncd_conf = $(CHROOT)/etc/systemd/timesyncd.conf
|
||||
01firstboot = $(CHROOT)/etc/local.d/01firstboot.start
|
||||
network_example = $(CHROOT)/00-eth0.network.example
|
||||
tmux_conf = $(CHROOT)//root/.tmux.conf
|
||||
|
||||
$(HARDENED):
|
||||
mkdir -p $(CHROOT)/etc/portage/profile
|
||||
echo "-hardened" >> $(CHROOT)/etc/portage/profile/use.mask
|
||||
RUN $(EMERGE) $(USEPKG) --oneshot gcc
|
||||
RUN $(EMERGE) $(USEPKG) --oneshot binutils virtual/libc
|
||||
-$(gcc_config)
|
||||
RUN $(EMERGE) $(USEPKG) --emptytree @world
|
||||
RUN bash -c 'yes YES | etc-update --automode -9'
|
||||
touch $(HARDENED)
|
||||
|
||||
$(timesyncd_conf): default/timesyncd.conf
|
||||
cp $< $@
|
||||
|
||||
$(01firstboot): default/01firstboot.start
|
||||
mkdir -p $(CHROOT)/etc/local.d
|
||||
cp $< $@
|
||||
touch $(CHROOT)/01firstboot
|
||||
|
||||
$(network_example): default/00-eth0.network
|
||||
cp $< $@
|
||||
|
||||
$(tmux_conf): default/tmux.conf
|
||||
RUN systemctl enable tmux@root.service
|
||||
cp $< $@
|
||||
|
||||
$(PAM_SSH_AGENT_AUTH):
|
||||
sed -i 's/# %wheel ALL=(ALL) ALL/%wheel ALL=(ALL) ALL/' $(CHROOT)/etc/sudoers
|
||||
sed -i 's#^auth.*$$#auth sufficient pam_ssh_agent_auth.so file=~/.ssh/authorized_keys\nauth required pam_env.so readenv=1 user_readenv=0\nsession required pam_env.so readenv=1 user_readenv=0\nauth substack system-auth#' $(CHROOT)/etc/pam.d/sudo
|
||||
sed -i 's#^auth.*$$#auth sufficient pam_ssh_agent_auth.so file=~/.ssh/authorized_keys\nauth required pam_env.so readenv=1 user_readenv=0\nsession required pam_env.so readenv=1 user_readenv=0\nauth substack system-auth#' $(CHROOT)/etc/pam.d/sudo-i
|
||||
echo "Defaults env_keep += SSH_AUTH_SOCK" > $(CHROOT)/etc/sudoers.d/ssh_auth_sock
|
||||
touch $(PAM_SSH_AGENT_AUTH)
|
||||
|
||||
$(ADMINUSER):
|
||||
RUN useradd -m -G users,wheel -s /bin/bash --comment="virtual appliance admin" --uid 2000 admin
|
||||
RUN passwd -d admin; $(inroot) passwd -e admin
|
||||
touch $(ADMINUSER)
|
||||
|
||||
preinstall: $(HARDENED)
|
||||
|
||||
postinstall: $(timesyncd_conf) $(01firstboot) $(network_example) $(tmux_conf) $(PAM_SSH_AGENT_AUTH) $(ADMINUSER)
|
|
@ -0,0 +1,6 @@
|
|||
Initial configuration
|
||||
=====================
|
||||
|
||||
- For dynamic data (configuration, databases) there must be a data partition formatted with ext4 with the label "DATA". This is mounted to /DATA.
|
||||
- Configure fixed IP address and /etc/hosts.
|
||||
- under VMware activate open-vm-tools if necessary
|
|
@ -0,0 +1,21 @@
|
|||
# Example of fixed IP address configuration:
|
||||
#
|
||||
# Customize and move as 00-eth0.network to /etc/systemd/network
|
||||
# (refer to "man systemd.network", "man systemd-resolved")
|
||||
#
|
||||
# DON'T FORGET: add appropriate entries in /etc/hosts
|
||||
# <IPv4> <fqdn> <hostname>
|
||||
# <IPv6> <fqdn> <hostname>
|
||||
|
||||
[Match]
|
||||
Name=eth0
|
||||
|
||||
[Network]
|
||||
Description=first network port
|
||||
Address=192.168.1.2/24
|
||||
Address=fdb5:78b:64cc:0:f8c0::2/64
|
||||
Gateway=192.168.1.1
|
||||
Gateway=fdb5:78b:64cc:0:f8c0::1
|
||||
DNS=192.168.1.3
|
||||
DNS=fdb5:78b:64cc:0:f8c0::3
|
||||
Domains=exampledomain.de
|
|
@ -0,0 +1,36 @@
|
|||
#!/bin/bash
|
||||
|
||||
# variables
|
||||
LABEL="DATA"
|
||||
|
||||
# base settings
|
||||
set -e
|
||||
|
||||
[ -e /01firstboot ] || exit 0
|
||||
|
||||
echo 'Setting keymap...'
|
||||
localectl --no-convert set-keymap de-latin1-nodeadkeys
|
||||
|
||||
echo 'Activate NTP service...'
|
||||
timedatectl set-ntp true
|
||||
|
||||
# Data partition
|
||||
echo 'Mount data partition...'
|
||||
mkdir -p /$LABEL
|
||||
if [ ! -L "/dev/disk/by-label/$LABEL" ]; then
|
||||
echo 'ERROR: Data partition not found!'
|
||||
echo "Please create a data partition with ext4 filesystem and label \"$LABEL\":"
|
||||
echo "# cfdisk /dev/<disk> (use GPT label, create linux partition)"
|
||||
echo "# mkfs.ext4 -L $LABEL /dev/<partition>"
|
||||
exit 1
|
||||
fi
|
||||
if ! grep -Fq "LABEL=$LABEL" /etc/fstab; then
|
||||
echo "LABEL=$LABEL /$LABEL ext4 noatime 0 1" >> /etc/fstab
|
||||
fi
|
||||
mount -a
|
||||
if ! mount | grep /$LABEL > /dev/null; then
|
||||
echo "ERROR: Could not mount data partition!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm /01firstboot
|
|
@ -0,0 +1,5 @@
|
|||
# See timesyncd.conf(5) for details.
|
||||
|
||||
[Time]
|
||||
NTP=0.de.pool.ntp.org 1.de.pool.ntp.org 2.de.pool.ntp.org 3.de.pool.ntp.org
|
||||
FallbackNTP=0.gentoo.pool.ntp.org 1.gentoo.pool.ntp.org 2.gentoo.pool.ntp.org 3.gentoo.pool.ntp.org
|
|
@ -0,0 +1,3 @@
|
|||
set -g mouse on
|
||||
set-option -g set-titles on
|
||||
set-option -g set-titles-string "#S / #T"
|
|
@ -0,0 +1,5 @@
|
|||
CFLAGS="-O2 -pipe"
|
||||
CXXFLAGS="-O2 -pipe"
|
||||
USE="hardened justify pie ssp urandom xattr -fortran -pch -pic -prelink -profile -tcc"
|
||||
MAKEOPTS="-j5"
|
||||
ACCEPT_LICENSE="*"
|
|
@ -0,0 +1,3 @@
|
|||
# Base system
|
||||
app-emulation/open-vm-tools
|
||||
sys-auth/pam_ssh_agent_auth
|
|
@ -1,7 +1,13 @@
|
|||
# Base system
|
||||
app-admin/sudo -sendmail
|
||||
app-editors/nano ncurses
|
||||
app-emulation/open-vm-tools pic -modules -resolutionkms
|
||||
app-misc/mc -slang
|
||||
dev-lang/python ssl threads xml
|
||||
dev-libs/libpcre cxx
|
||||
dev-libs/libpcre cxx jit
|
||||
dev-libs/libpcre2 jit
|
||||
dev-util/pkgconfig internal-glib
|
||||
dev-vcs/git -gpg -iconv -pcre -pcre-jit -perl -python -threads -webdav
|
||||
net-misc/openssh ssl
|
||||
net-misc/wget ssl
|
||||
sys-apps/hwids udev
|
||||
|
@ -11,9 +17,6 @@ sys-apps/portage ipc
|
|||
sys-auth/pambase nullok sha512
|
||||
sys-devel/gcc cxx nptl
|
||||
sys-kernel/gentoo-sources symlink
|
||||
sys-process/procps kill
|
||||
|
||||
# for Jenkins
|
||||
dev-lang/python sqlite
|
||||
dev-vcs/mercurial python_targets_python2_7
|
||||
www-servers/nginx http
|
||||
# Monitoring
|
||||
net-analyzer/zabbix agent
|
|
@ -0,0 +1,11 @@
|
|||
app-admin/logrotate
|
||||
app-admin/sudo
|
||||
app-emulation/open-vm-tools
|
||||
app-emulation/qemu-guest-agent
|
||||
app-misc/mc
|
||||
app-misc/tmuxservice
|
||||
dev-vcs/git
|
||||
net-analyzer/zabbix
|
||||
sys-auth/pam_ssh_agent_auth
|
||||
sys-fs/mdadm
|
||||
sys-power/acpid
|
|
@ -1,3 +0,0 @@
|
|||
net.ipv4.ip_forward=1
|
||||
net.ipv6.conf.default.forwarding=1
|
||||
net.ipv6.conf.all.forwarding=1
|
|
@ -1,9 +0,0 @@
|
|||
preinstall:
|
||||
|
||||
postinstall: 30-ipforward.conf eth.network
|
||||
COPY 30-ipforward.conf /etc/sysctl.d/
|
||||
COPY eth.network /etc/systemd/network/
|
||||
RUN systemctl enable docker.service
|
||||
|
||||
clean:
|
||||
|
|
@ -1 +0,0 @@
|
|||
KERNEL_CONFIG = appliances/$(APPLIANCE)/kernel.config
|
|
@ -1,5 +0,0 @@
|
|||
[Match]
|
||||
|
||||
[Network]
|
||||
DHCP=both
|
||||
IPForward=kernel
|
File diff suppressed because it is too large
Load Diff
|
@ -1,22 +0,0 @@
|
|||
app-emulation/containerd ~x86 ~amd64
|
||||
app-emulation/docker ~x86 ~amd64
|
||||
app-emulation/docker-compose ~x86 ~amd64
|
||||
app-emulation/docker-proxy ~x86 ~amd64
|
||||
app-emulation/docker-runc ~x86 ~amd64
|
||||
app-emulation/runc ~x86 ~amd64
|
||||
dev-go/blackfriday ~x86 ~amd64
|
||||
dev-go/go-md2man ~x86 ~amd64
|
||||
dev-go/sanitized-anchor-name ~x86 ~amd64
|
||||
dev-python/backports-ssl-match-hostname ~x86 ~amd64
|
||||
dev-python/cached-property ~x86 ~amd64
|
||||
dev-python/colorama ~x86 ~amd64
|
||||
dev-python/docker-py ~x86 ~amd64
|
||||
dev-python/docker-pycreds ~x86 ~amd64
|
||||
dev-python/dockerpty ~x86 ~amd64
|
||||
dev-python/jsonschema ~x86 ~amd64
|
||||
dev-python/strict-rfc3339 ~x86 ~amd64
|
||||
dev-python/texttable ~x86 ~amd64
|
||||
dev-python/vcversioner ~x86 ~amd64
|
||||
dev-python/webcolors ~x86 ~amd64
|
||||
dev-python/websocket-client ~x86 ~amd64
|
||||
sys-kernel/gentoo-sources ~x86 ~amd64
|
|
@ -1,21 +0,0 @@
|
|||
app-editors/nano ncurses
|
||||
dev-lang/python ssl threads xml
|
||||
dev-libs/libpcre cxx
|
||||
dev-libs/openssl -bindist
|
||||
dev-util/pkgconfig internal-glib
|
||||
net-misc/curl ssl
|
||||
net-misc/openssh ssl -bindist
|
||||
net-misc/wget ssl
|
||||
sys-apps/hwids udev
|
||||
sys-apps/kmod tools
|
||||
sys-apps/net-tools hostname
|
||||
sys-apps/portage ipc
|
||||
sys-auth/pambase nullok sha512
|
||||
sys-devel/gcc cxx nptl
|
||||
sys-kernel/gentoo-sources symlink
|
||||
sys-process/procps kill
|
||||
|
||||
app-emulation/docker aufs btrfs overlay
|
||||
app-text/asciidoc python_single_target_python2_7 python_targets_python2_7
|
||||
sys-apps/iproute2 iptables
|
||||
sys-apps/systemd acl nat pam
|
|
@ -1,2 +0,0 @@
|
|||
app-emulation/docker
|
||||
app-emulation/docker-compose
|
|
@ -1,40 +0,0 @@
|
|||
ES_HOME ?= /var/lib/elasticsearch
|
||||
ES_VER ?= 6.5.1
|
||||
ES_TARBALL = elasticsearch-$(ES_VER).tar.gz
|
||||
ES_URL = https://artifacts.elastic.co/downloads/elasticsearch/$(ES_TARBALL)
|
||||
|
||||
preinstall:
|
||||
|
||||
create_user:
|
||||
-RUN useradd --system \
|
||||
--comment "Elastic Search" \
|
||||
--home-dir=$(ES_HOME) \
|
||||
--create-home \
|
||||
elastic
|
||||
|
||||
install_elasticsearch:
|
||||
RUN test -f /usr/portage/distfiles/$(ES_TARBALL) || \
|
||||
RUN wget -P /usr/portage/distfiles $(ES_URL)
|
||||
RUN tar xf /usr/portage/distfiles/$(ES_TARBALL) -C $(ES_HOME)
|
||||
RUN sh -c 'cd $(ES_HOME) && ln -s elasticsearch-$(ES_VER)/* .'
|
||||
|
||||
install_license:
|
||||
RUN sh -c 'cd $(ES_HOME) && ./bin/plugin install license'
|
||||
|
||||
install_marvel: install_license
|
||||
RUN sh -c 'cd $(ES_HOME) && ./bin/plugin install marvel-agent'
|
||||
echo 'marvel.agent.enabled: false' >> $(CHROOT)/$(ES_HOME)/config/elasticsearch.yml
|
||||
|
||||
postinstall: elasticsearch.service
|
||||
$(MAKE) create_user
|
||||
RUN rm -rf $(ES_HOME)
|
||||
RUN mkdir -p $(ES_HOME)
|
||||
$(MAKE) install_elasticsearch
|
||||
RUN chown -R elastic:elastic $(ES_HOME)
|
||||
COPY elasticsearch.service /etc/systemd/system
|
||||
RUN systemctl enable elasticsearch.service
|
||||
|
||||
clean:
|
||||
|
||||
|
||||
.PHONY: create_user preinstall postinstall clean install_elasticsearch install_marvel install_license
|
|
@ -1,13 +0,0 @@
|
|||
[Unit]
|
||||
Description = ElasticSearch full-text search and analytics engine
|
||||
After = network.target
|
||||
|
||||
[Service]
|
||||
User = elastic
|
||||
Group = elastic
|
||||
LimitNOFILE=65536
|
||||
Environment=ES_HOME=/var/lib/elasticsearch
|
||||
ExecStart = /var/lib/elasticsearch/bin/elasticsearch
|
||||
|
||||
[Install]
|
||||
WantedBy = multi-user.target
|
|
@ -1 +0,0 @@
|
|||
PYTHON_SINGLE_TARGET=python3_6
|
|
@ -1 +0,0 @@
|
|||
sys-kernel/gentoo-sources ~amd64 ~x86
|
|
@ -1,14 +0,0 @@
|
|||
app-editors/nano ncurses
|
||||
dev-lang/python ssl threads xml
|
||||
dev-libs/libpcre cxx
|
||||
dev-util/pkgconfig internal-glib
|
||||
net-misc/openssh ssl
|
||||
net-misc/wget ssl
|
||||
sys-apps/hwids udev
|
||||
sys-apps/kmod tools
|
||||
sys-apps/net-tools hostname
|
||||
sys-apps/portage ipc
|
||||
sys-auth/pambase nullok sha512
|
||||
sys-devel/gcc cxx nptl
|
||||
sys-kernel/gentoo-sources symlink
|
||||
sys-process/procps kill
|
|
@ -1 +0,0 @@
|
|||
dev-java/icedtea-bin:8
|
|
@ -1,36 +0,0 @@
|
|||
JENKINS_HOME ?= /var/lib/jenkins
|
||||
JENKINS_URL = http://mirrors.jenkins-ci.org/war/latest/jenkins.war
|
||||
|
||||
preinstall:
|
||||
|
||||
create_user:
|
||||
-RUN useradd --system \
|
||||
--comment "Jenkins CI" \
|
||||
--home-dir=$(JENKINS_HOME) \
|
||||
--create-home \
|
||||
jenkins
|
||||
|
||||
|
||||
$(CHROOT)/$(JENKINS_HOME)/jenkins.war:
|
||||
RUN wget -O $(JENKINS_HOME)/jenkins.war $(JENKINS_URL)
|
||||
|
||||
|
||||
install_jenkins:
|
||||
$(MAKE) $(CHROOT)/$(JENKINS_HOME)/jenkins.war
|
||||
|
||||
|
||||
postinstall: jenkins.service nginx.conf
|
||||
$(MAKE) create_user
|
||||
RUN rm -rf $(JENKINS_HOME)
|
||||
RUN mkdir -p $(JENKINS_HOME)
|
||||
$(MAKE) install_jenkins
|
||||
RUN chown -R jenkins:jenkins $(JENKINS_HOME)
|
||||
COPY jenkins.service /etc/systemd/system
|
||||
RUN systemctl enable jenkins.service
|
||||
COPY nginx.conf /etc/nginx/nginx.conf
|
||||
RUN systemctl enable nginx.service
|
||||
|
||||
clean:
|
||||
|
||||
|
||||
.PHONY: create_user preinstall postinstall clean install_jenkins
|
|
@ -1,13 +0,0 @@
|
|||
[Unit]
|
||||
Description = An extensible open source continuous integration server
|
||||
After = network.target
|
||||
Wants = nginx.service
|
||||
|
||||
[Service]
|
||||
User = jenkins
|
||||
Group = jenkins
|
||||
Environment=JENKINS_HOME=/var/lib/jenkins
|
||||
ExecStart = /usr/bin/java -jar ${JENKINS_HOME}/jenkins.war
|
||||
|
||||
[Install]
|
||||
WantedBy = multi-user.target
|
|
@ -1,3 +0,0 @@
|
|||
# Settings for TeamPlayer
|
||||
NGINX_MODULES_HTTP="auth_basic gzip proxy referer rewrite headers_more uwsgi"
|
||||
PYTHON_SINGLE_TARGET=python3_6
|
|
@ -1,82 +0,0 @@
|
|||
user nginx nginx;
|
||||
worker_processes 1;
|
||||
|
||||
error_log /var/log/nginx/error_log info;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
use epoll;
|
||||
}
|
||||
|
||||
http {
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
log_format main
|
||||
'$remote_addr - $remote_user [$time_local] '
|
||||
'"$request" $status $bytes_sent '
|
||||
'"$http_referer" "$http_user_agent" '
|
||||
'"$gzip_ratio"';
|
||||
|
||||
client_header_timeout 10m;
|
||||
client_body_timeout 10m;
|
||||
send_timeout 10m;
|
||||
|
||||
connection_pool_size 256;
|
||||
client_header_buffer_size 1k;
|
||||
large_client_header_buffers 4 2k;
|
||||
request_pool_size 4k;
|
||||
|
||||
gzip on;
|
||||
gzip_min_length 1100;
|
||||
gzip_buffers 4 8k;
|
||||
gzip_types text/plain;
|
||||
|
||||
output_buffers 1 32k;
|
||||
postpone_output 1460;
|
||||
|
||||
sendfile on;
|
||||
tcp_nopush on;
|
||||
tcp_nodelay on;
|
||||
|
||||
keepalive_timeout 75 20;
|
||||
|
||||
ignore_invalid_headers on;
|
||||
|
||||
index index.html;
|
||||
|
||||
server {
|
||||
listen 0.0.0.0;
|
||||
server_name localhost;
|
||||
|
||||
access_log /var/log/nginx/jenkins.access_log main;
|
||||
error_log /var/log/nginx/jenkins.error_log info;
|
||||
|
||||
root /var/www/jenkins/htdocs;
|
||||
|
||||
location / {
|
||||
sendfile off;
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
proxy_redirect default;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_max_temp_file_size 0;
|
||||
}
|
||||
}
|
||||
|
||||
# SSL example
|
||||
#server {
|
||||
# listen 127.0.0.1:443;
|
||||
# server_name localhost;
|
||||
|
||||
# ssl on;
|
||||
# ssl_certificate /etc/ssl/nginx/nginx.pem;
|
||||
# ssl_certificate_key /etc/ssl/nginx/nginx.key;
|
||||
|
||||
# access_log /var/log/nginx/jenkins.ssl_access_log main;
|
||||
# error_log /var/log/nginx/jenkins.ssl_error_log info;
|
||||
|
||||
# root /var/www/jenkins/htdocs;
|
||||
#}
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
sys-kernel/gentoo-sources ~amd64 ~x86
|
|
@ -1,7 +0,0 @@
|
|||
dev-java/icedtea-bin
|
||||
dev-python/setuptools
|
||||
dev-python/virtualenv
|
||||
dev-vcs/git
|
||||
dev-vcs/mercurial
|
||||
dev-vcs/subversion
|
||||
www-servers/nginx
|
|
@ -1,19 +0,0 @@
|
|||
system_conf = $(CHROOT)/etc/mysql/my.cnf
|
||||
root_conf = $(CHROOT)/root/.my.cnf
|
||||
|
||||
preinstall:
|
||||
|
||||
$(system_conf): my.cnf
|
||||
cp my.cnf $(system_conf)
|
||||
|
||||
$(root_conf): my.cnf.root
|
||||
cp my.cnf.root $(root_conf)
|
||||
chmod 0600 $(root_conf)
|
||||
|
||||
postinstall: $(system_conf) $(root_conf)
|
||||
rm -rf $(CHROOT)/var/lib/mysql
|
||||
RUN bash -c 'yes gentoo | emerge --config dev-db/mariadb'
|
||||
RUN systemctl enable mariadb
|
||||
|
||||
clean:
|
||||
|
|
@ -1,139 +0,0 @@
|
|||
# /etc/mysql/my.cnf: The global mysql configuration file.
|
||||
# $Id$
|
||||
|
||||
# The following options will be passed to all MySQL clients
|
||||
[client]
|
||||
#password = your_password
|
||||
port = 3306
|
||||
socket = /var/run/mysqld/mysqld.sock
|
||||
|
||||
[mysql]
|
||||
character-sets-dir=/usr/share/mysql/charsets
|
||||
default-character-set=utf8
|
||||
|
||||
[mysqladmin]
|
||||
character-sets-dir=/usr/share/mysql/charsets
|
||||
default-character-set=utf8
|
||||
|
||||
[mysqlcheck]
|
||||
character-sets-dir=/usr/share/mysql/charsets
|
||||
default-character-set=utf8
|
||||
|
||||
[mysqldump]
|
||||
character-sets-dir=/usr/share/mysql/charsets
|
||||
default-character-set=utf8
|
||||
|
||||
[mysqlimport]
|
||||
character-sets-dir=/usr/share/mysql/charsets
|
||||
default-character-set=utf8
|
||||
|
||||
[mysqlshow]
|
||||
character-sets-dir=/usr/share/mysql/charsets
|
||||
default-character-set=utf8
|
||||
|
||||
[myisamchk]
|
||||
character-sets-dir=/usr/share/mysql/charsets
|
||||
|
||||
[myisampack]
|
||||
character-sets-dir=/usr/share/mysql/charsets
|
||||
|
||||
# add a section [mysqld-4.1] or [mysqld-5.0] for specific configurations
|
||||
[mysqld]
|
||||
character-set-server = utf8
|
||||
user = mysql
|
||||
port = 3306
|
||||
socket = /var/run/mysqld/mysqld.sock
|
||||
pid-file = /var/run/mysqld/mysqld.pid
|
||||
log-error = /var/log/mysql/mysqld.err
|
||||
basedir = /usr
|
||||
datadir = /var/lib/mysql
|
||||
skip-external-locking
|
||||
key_buffer_size = 16M
|
||||
max_allowed_packet = 4M
|
||||
table_open_cache = 400
|
||||
sort_buffer_size = 512K
|
||||
net_buffer_length = 16K
|
||||
read_buffer_size = 256K
|
||||
read_rnd_buffer_size = 512K
|
||||
myisam_sort_buffer_size = 8M
|
||||
lc_messages_dir = /usr/share/mysql
|
||||
#Set this to your desired error message language
|
||||
lc_messages = en_US
|
||||
|
||||
# security:
|
||||
# using "localhost" in connects uses sockets by default
|
||||
# skip-networking
|
||||
#bind-address = 127.0.0.1
|
||||
|
||||
log-bin
|
||||
server-id = 1
|
||||
|
||||
# point the following paths to different dedicated disks
|
||||
tmpdir = /tmp/
|
||||
#log-update = /path-to-dedicated-directory/hostname
|
||||
|
||||
# you need the debug USE flag enabled to use the following directives,
|
||||
# if needed, uncomment them, start the server and issue
|
||||
# #tail -f /tmp/mysqld.sql /tmp/mysqld.trace
|
||||
# this will show you *exactly* what's happening in your server ;)
|
||||
|
||||
#log = /tmp/mysqld.sql
|
||||
#gdb
|
||||
#debug = d:t:i:o,/tmp/mysqld.trace
|
||||
#one-thread
|
||||
|
||||
# the rest of the innodb config follows:
|
||||
# don't eat too much memory, we're trying to be safe on 64Mb boxes
|
||||
# you might want to bump this up a bit on boxes with more RAM
|
||||
innodb_buffer_pool_size = 128M
|
||||
#
|
||||
# i'd like to use /var/lib/mysql/innodb, but that is seen as a database :-(
|
||||
# and upstream wants things to be under /var/lib/mysql/, so that's the route
|
||||
# we have to take for the moment
|
||||
#innodb_data_home_dir = /var/lib/mysql/
|
||||
#innodb_log_arch_dir = /var/lib/mysql/
|
||||
#innodb_log_group_home_dir = /var/lib/mysql/
|
||||
# you may wish to change this size to be more suitable for your system
|
||||
# the max is there to avoid run-away growth on your machine
|
||||
innodb_data_file_path = ibdata1:10M:autoextend:max:128M
|
||||
# we keep this at around 25% of of innodb_buffer_pool_size
|
||||
# sensible values range from 1MB to (1/innodb_log_files_in_group*innodb_buffer_pool_size)
|
||||
innodb_log_file_size = 48M
|
||||
# this is the default, increase it if you have very large transactions going on
|
||||
innodb_log_buffer_size = 8M
|
||||
# this is the default and won't hurt you
|
||||
# you shouldn't need to tweak it
|
||||
innodb_log_files_in_group=2
|
||||
# see the innodb config docs, the other options are not always safe
|
||||
innodb_flush_log_at_trx_commit = 1
|
||||
innodb_lock_wait_timeout = 50
|
||||
innodb_file_per_table
|
||||
|
||||
# Uncomment this to get FEDERATED engine support
|
||||
#plugin-load=federated=ha_federated.so
|
||||
loose-federated
|
||||
|
||||
[mysqldump]
|
||||
quick
|
||||
max_allowed_packet = 16M
|
||||
|
||||
[mysql]
|
||||
# uncomment the next directive if you are not familiar with SQL
|
||||
#safe-updates
|
||||
|
||||
[isamchk]
|
||||
key_buffer_size = 20M
|
||||
sort_buffer_size = 20M
|
||||
read_buffer = 2M
|
||||
write_buffer = 2M
|
||||
|
||||
[myisamchk]
|
||||
key_buffer_size = 20M
|
||||
sort_buffer_size = 20M
|
||||
read_buffer_size = 2M
|
||||
write_buffer_size = 2M
|
||||
|
||||
[mysqlhotcopy]
|
||||
interactive-timeout
|
||||
|
||||
[mariadb]
|
|
@ -1,3 +0,0 @@
|
|||
[mysqladmin]
|
||||
user = root
|
||||
password = gentoo
|
|
@ -1,4 +0,0 @@
|
|||
dev-db/mariadb ~amd64 ~x86
|
||||
dev-db/mariadb-connector-c ~amd64 ~x86
|
||||
dev-db/mysql-connector-c ~amd64 ~x86
|
||||
sys-kernel/gentoo-sources ~amd64 ~x86
|
|
@ -1,19 +0,0 @@
|
|||
app-editors/nano ncurses
|
||||
dev-lang/python ssl threads xml
|
||||
dev-libs/libpcre cxx
|
||||
dev-util/pkgconfig internal-glib
|
||||
net-misc/openssh ssl
|
||||
net-misc/wget ssl
|
||||
sys-apps/hwids udev
|
||||
sys-apps/kmod tools
|
||||
sys-apps/net-tools hostname
|
||||
sys-apps/portage ipc
|
||||
sys-auth/pambase nullok sha512
|
||||
sys-devel/gcc cxx nptl
|
||||
sys-kernel/gentoo-sources symlink
|
||||
sys-process/procps kill
|
||||
|
||||
# for mariadb
|
||||
dev-db/mariadb innodb-snappy server sphinx
|
||||
dev-db/mariadb-connector-c ssl
|
||||
net-misc/curl ssl
|
|
@ -1 +0,0 @@
|
|||
dev-db/mariadb
|
|
@ -1,9 +0,0 @@
|
|||
preinstall:
|
||||
|
||||
|
||||
postinstall:
|
||||
sed -i 's/127\.0\.0\.1/0.0.0.0/g' "$(CHROOT)"/etc/mongodb.conf
|
||||
RUN systemctl enable mongodb.service
|
||||
|
||||
clean:
|
||||
|
|
@ -1 +0,0 @@
|
|||
sys-kernel/gentoo-sources ~amd64 ~x86
|
|
@ -1,24 +0,0 @@
|
|||
app-editors/nano ncurses
|
||||
dev-db/mongodb python_targets_python2_7 ssl tools
|
||||
dev-lang/python ssl threads xml
|
||||
dev-libs/boost threads
|
||||
dev-libs/libpcre cxx
|
||||
dev-python/certifi python_targets_python2_7
|
||||
dev-python/cheetah python_targets_python2_7
|
||||
dev-python/markdown python_targets_python2_7
|
||||
dev-python/setuptools python_targets_python2_7
|
||||
dev-util/pkgconfig internal-glib
|
||||
dev-util/scons python_targets_python2_7
|
||||
net-misc/curl ssl
|
||||
net-misc/dhcp client
|
||||
net-misc/openssh ssl
|
||||
net-misc/wget ssl
|
||||
sys-apps/hwids udev
|
||||
sys-apps/kmod tools
|
||||
sys-apps/net-tools hostname
|
||||
sys-apps/portage ipc
|
||||
sys-apps/systemd acl
|
||||
sys-auth/pambase nullok sha512
|
||||
sys-devel/gcc cxx nptl
|
||||
sys-kernel/gentoo-sources symlink
|
||||
sys-process/procps kill
|
|
@ -1 +0,0 @@
|
|||
dev-db/mongodb
|
|
@ -1,7 +0,0 @@
|
|||
preinstall:
|
||||
|
||||
postinstall:
|
||||
RUN systemctl enable rabbitmq.service
|
||||
|
||||
clean:
|
||||
|
|
@ -1 +0,0 @@
|
|||
sys-kernel/gentoo-sources ~amd64 ~x86
|
|
@ -1,24 +0,0 @@
|
|||
app-editors/nano ncurses
|
||||
dev-lang/python ssl threads xml
|
||||
dev-libs/libpcre cxx
|
||||
dev-util/pkgconfig internal-glib
|
||||
net-misc/openssh ssl
|
||||
net-misc/wget ssl
|
||||
sys-apps/hwids udev
|
||||
sys-apps/kmod tools
|
||||
sys-apps/net-tools hostname
|
||||
sys-apps/portage ipc
|
||||
sys-auth/pambase nullok sha512
|
||||
sys-devel/gcc cxx nptl
|
||||
sys-kernel/gentoo-sources symlink
|
||||
sys-process/procps kill
|
||||
|
||||
# for rabbitmq
|
||||
dev-lang/erlang ssl
|
||||
dev-python/appdirs python_targets_python2_7
|
||||
dev-python/certifi python_targets_python2_7
|
||||
dev-python/packaging python_targets_python2_7
|
||||
dev-python/setuptools python_targets_python2_7
|
||||
dev-python/simplejson python_targets_python2_7
|
||||
dev-python/pyparsing python_targets_python2_7
|
||||
dev-python/six python_targets_python2_7
|
|
@ -1 +0,0 @@
|
|||
net-misc/rabbitmq-server
|
|
@ -1,71 +0,0 @@
|
|||
TP_REPO ?= https://bitbucket.org/marduk/teamplayer
|
||||
TP_BRANCH ?= default
|
||||
TP_USER = teamplayer
|
||||
TP_HOME = /opt/teamplayer
|
||||
TP_DB = /var/lib/teamplayer
|
||||
PYTHON = $(TP_HOME)/bin/python
|
||||
PGVER = 11
|
||||
INSTALL = install
|
||||
AVAHI := NO
|
||||
|
||||
M4_DEFS += -D TP_USER=$(TP_USER) -D TP_HOME=$(TP_HOME) -D TP_DB=$(TP_DB) -D HOSTNAME=$(HOSTNAME) -D PGVER=$(PGVER)
|
||||
M4C = $(M4) $(M4_DEFS)
|
||||
|
||||
rcdefault := /etc/runlevels/default
|
||||
|
||||
post_files = bash_profile settings.py teamplayer-pre.service
|
||||
post_files += teamplayer-wsgi.service teamplayer-spindoctor.service
|
||||
post_files += issue nginx.conf teamplayer.service
|
||||
|
||||
preinstall:
|
||||
|
||||
postinstall: $(post_files) $(SCROBBLER_AUTH) urls.py
|
||||
RUN passwd -d postgres
|
||||
rm -rf $(CHROOT)/var/lib/postgresql/$(PGVER)/data
|
||||
RUN eselect postgresql unset
|
||||
RUN eselect postgresql set $(PGVER)
|
||||
RUN bash -c "echo y |$(EMERGE) --config postgresql:$(PGVER)"
|
||||
ifeq ($(AVAHI),YES)
|
||||
RUN $(EMERGE) --noreplace $(USEPKG) net-dns/avahi
|
||||
RUN rm -f /etc/avahi/services/*
|
||||
COPY teamplayer.service /etc/avahi/services
|
||||
RUN systemctl enable avahi-daemon.service
|
||||
endif
|
||||
RUN $(EMERGE) --oneshot --noreplace $(USEPKG) dev-python/setuptools dev-python/virtualenv dev-vcs/mercurial
|
||||
RUN getent passwd $(TP_USER) || \
|
||||
RUN useradd -c "Teamplayer Server" -G postgres -U -d $(TP_HOME) $(TP_USER)
|
||||
rm -rf $(CHROOT)/$(TP_HOME)
|
||||
mkdir -p $(CHROOT)/$(TP_HOME)
|
||||
COPY bash_profile $(TP_HOME)/.bash_profile
|
||||
RUN virtualenv $(TP_HOME)
|
||||
#RUN bash -c ". $(TP_HOME)/bin/activate ; LANG=en_US.utf8 pip install --no-cache-dir hg+$(TP_REPO)@$(TP_BRANCH)"
|
||||
RUN --setenv=LANG=en_US.utf8 $(PYTHON) -m pip install --no-cache-dir hg+$(TP_REPO)@$(TP_BRANCH)
|
||||
RUN $(PYTHON) -m pip install --no-cache-dir psycopg2 uwsgi Whoosh setproctitle
|
||||
#RUN bash -c ". $(TP_HOME)/bin/activate ; pip install --no-cache-dir psycopg2 uwsgi Whoosh setproctitle"
|
||||
#RUN bash -c ". $(TP_HOME)/bin/activate ; django-admin.py startproject project $(TP_HOME)"
|
||||
RUN $(TP_HOME)/bin/django-admin startproject project $(TP_HOME)
|
||||
chmod +x $(CHROOT)/$(TP_HOME)/manage.py
|
||||
RUN ln -sf ../manage.py $(TP_HOME)/bin/manage
|
||||
COPY urls.py $(TP_HOME)/project/urls.py
|
||||
$(M4C) settings.py >> $(CHROOT)/$(TP_HOME)/project/settings.py
|
||||
ifdef SCROBBLER_AUTH
|
||||
cat $(SCROBBLER_AUTH) >> $(CHROOT)/$(TP_HOME)/project/settings.py
|
||||
endif
|
||||
RUN bash -c ". $(TP_HOME)/bin/activate; cd $(TP_HOME); DJANGO_SETTINGS_MODULE=project.settings $(TP_HOME)/manage.py collectstatic --noinput"
|
||||
RUN $(INSTALL) -d -o $(TP_USER) -g $(TP_USER) $(TP_DB)
|
||||
RUN $(INSTALL) -d -o $(TP_USER) -g $(TP_USER) $(TP_DB)/songs
|
||||
RUN mkdir -p $(TP_HOME)/library
|
||||
RUN chown -R $(TP_USER):$(TP_USER) $(TP_HOME)
|
||||
RUN $(INSTALL) -d -o $(TP_USER) -g $(TP_USER) $(TP_DB)/mpd
|
||||
$(M4C) teamplayer-pre.service > $(CHROOT)/etc/systemd/system/teamplayer-pre.service
|
||||
$(M4C) teamplayer-wsgi.service > $(CHROOT)/etc/systemd/system/teamplayer-wsgi.service
|
||||
$(M4C) teamplayer-spindoctor.service > $(CHROOT)/etc/systemd/system/teamplayer-spindoctor.service
|
||||
COPY issue /etc/issue
|
||||
$(M4C) nginx.conf > $(CHROOT)/etc/nginx/nginx.conf
|
||||
RUN gpasswd -a nginx teamplayer
|
||||
RUN systemctl enable teamplayer-wsgi.service
|
||||
RUN systemctl enable teamplayer-spindoctor.service
|
||||
RUN $(EMERGE) --depclean --with-bdeps=n
|
||||
|
||||
clean:
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
export DJANGO_SETTINGS_MODULE='project.settings'
|
||||
export PYTHONPATH="$HOME"
|
||||
PATH="$HOME/bin:$PATH"
|
||||
export LANG="en_US.UTF-8"
|
||||
. activate
|
|
@ -1,5 +0,0 @@
|
|||
[H[2J ------------------------------------------------------------------------------
|
||||
TEAMPLAYER CONSOLE
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
|
||||
# Settings for TeamPlayer
|
||||
NGINX_MODULES_HTTP="auth_basic gzip proxy referer rewrite headers_more uwsgi"
|
||||
USE_PYTHON="3.6"
|
||||
PYTHON_TARGETS="python3_6"
|
|
@ -1,82 +0,0 @@
|
|||
user nginx nginx;
|
||||
worker_processes 1;
|
||||
|
||||
error_log /var/log/nginx/error_log info;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
use epoll;
|
||||
}
|
||||
|
||||
http {
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
log_format main
|
||||
'$remote_addr - $remote_user [$time_local] '
|
||||
'"$request" $status $bytes_sent '
|
||||
'"$http_referer" "$http_user_agent" '
|
||||
'"$gzip_ratio"';
|
||||
|
||||
client_header_timeout 10m;
|
||||
client_body_timeout 10m;
|
||||
send_timeout 10m;
|
||||
|
||||
connection_pool_size 256;
|
||||
client_header_buffer_size 1k;
|
||||
large_client_header_buffers 4 2k;
|
||||
client_max_body_size 100000k;
|
||||
request_pool_size 4k;
|
||||
|
||||
gzip on;
|
||||
gzip_min_length 1100;
|
||||
gzip_buffers 4 8k;
|
||||
gzip_types text/plain;
|
||||
|
||||
output_buffers 1 32k;
|
||||
postpone_output 1460;
|
||||
|
||||
sendfile on;
|
||||
tcp_nopush on;
|
||||
tcp_nodelay on;
|
||||
|
||||
keepalive_timeout 75 20;
|
||||
|
||||
ignore_invalid_headers on;
|
||||
|
||||
index index.html;
|
||||
|
||||
server {
|
||||
listen 0.0.0.0;
|
||||
server_name HOSTNAME;
|
||||
|
||||
location /static/ {
|
||||
alias TP_HOME/static/;
|
||||
}
|
||||
|
||||
location / {
|
||||
uwsgi_pass unix://TP_DB/teamplayer.sock;
|
||||
include /etc/nginx/uwsgi_params;
|
||||
}
|
||||
|
||||
access_log /var/log/nginx/HOSTNAME.access_log main;
|
||||
error_log /var/log/nginx/HOSTNAME.error_log info;
|
||||
|
||||
root /var/www/localhost/htdocs;
|
||||
}
|
||||
|
||||
# SSL example
|
||||
#server {
|
||||
# listen 127.0.0.1:443;
|
||||
# server_name localhost;
|
||||
|
||||
# ssl on;
|
||||
# ssl_certificate /etc/ssl/nginx/nginx.pem;
|
||||
# ssl_certificate_key /etc/ssl/nginx/nginx.key;
|
||||
|
||||
# access_log /var/log/nginx/localhost.ssl_access_log main;
|
||||
# error_log /var/log/nginx/localhost.ssl_error_log info;
|
||||
|
||||
# root /var/www/localhost/htdocs;
|
||||
#}
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
app-eselect/eselect-postgresql
|
||||
dev-db/postgresql
|
||||
dev-python/pip
|
||||
dev-python/virtualenv
|
||||
media-sound/mpd
|
||||
sys-kernel/gentoo-sources
|
||||
virtual/python-imaging
|
|
@ -1,26 +0,0 @@
|
|||
app-editors/nano ncurses
|
||||
dev-db/postgresql server
|
||||
dev-lang/python sqlite ssl threads xml
|
||||
dev-python/certifi python_targets_python2_7
|
||||
dev-python/cffi python_targets_python2_7
|
||||
dev-python/ply python_targets_python2_7
|
||||
dev-python/pycparser python_targets_python2_7
|
||||
dev-python/setuptools python_targets_python2_7
|
||||
dev-python/zstandard python_targets_python2_7
|
||||
dev-util/pkgconfig internal-glib
|
||||
dev-vcs/mercurial python_targets_python2_7
|
||||
media-libs/flac ogg
|
||||
media-sound/mpd faad audiofile ffmpeg flac inotify id3tag lame network ogg opus vorbis mad sqlite unicode
|
||||
media-video/ffmpeg cpudetection mp3 network threads x264
|
||||
net-misc/openssh ssl
|
||||
net-misc/wget ssl
|
||||
sys-apps/hwids udev
|
||||
sys-apps/kmod tools
|
||||
sys-apps/net-tools hostname
|
||||
sys-apps/portage ipc
|
||||
sys-auth/pambase nullok sha512
|
||||
sys-devel/gcc cxx nptl
|
||||
sys-kernel/gentoo-sources symlink
|
||||
sys-process/procps kill
|
||||
virtual/ffmpeg x264 mp3
|
||||
www-servers/nginx http
|
|
@ -1,143 +0,0 @@
|
|||
# Quick-start development settings - unsuitable for production
|
||||
# See https://docs.djangoproject.com/en/1.10/howto/deployment/checklist/
|
||||
|
||||
# SECURITY WARNING: keep the secret key used in production secret!
|
||||
SECRET_KEY = 'ej83nbqy(+nvr9&mwf8)zvz*4f)h0b@6s@%%f9tnk2ks9cfvx&'
|
||||
|
||||
DEBUG = False
|
||||
|
||||
ALLOWED_HOSTS = ['*']
|
||||
|
||||
|
||||
# Application definition
|
||||
|
||||
INSTALLED_APPS = [
|
||||
'django.contrib.auth',
|
||||
'django.contrib.contenttypes',
|
||||
'django.contrib.sessions',
|
||||
'django.contrib.messages',
|
||||
'django.contrib.staticfiles',
|
||||
'django.contrib.humanize',
|
||||
'haystack',
|
||||
'rest_framework',
|
||||
'teamplayer',
|
||||
]
|
||||
|
||||
MIDDLEWARE = [
|
||||
'django.middleware.security.SecurityMiddleware',
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
'django.middleware.csrf.CsrfViewMiddleware',
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
'teamplayer.middleware.TeamPlayerMiddleware',
|
||||
'django.contrib.messages.middleware.MessageMiddleware',
|
||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||
]
|
||||
|
||||
ROOT_URLCONF = 'project.urls'
|
||||
|
||||
TEMPLATES = [
|
||||
{
|
||||
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||
'DIRS': [],
|
||||
'APP_DIRS': True,
|
||||
'OPTIONS': {
|
||||
'context_processors': [
|
||||
'django.template.context_processors.debug',
|
||||
'django.template.context_processors.request',
|
||||
'django.contrib.auth.context_processors.auth',
|
||||
'django.contrib.messages.context_processors.messages',
|
||||
],
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
WSGI_APPLICATION = 'project.wsgi.application'
|
||||
|
||||
|
||||
# Database
|
||||
# https://docs.djangoproject.com/en/1.10/ref/settings/#databases
|
||||
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
||||
'NAME': 'teamplayer',
|
||||
'HOST': '',
|
||||
'PASSWORD': '',
|
||||
'PORT': '',
|
||||
'CONN_MAX_AGE': 300,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# Password validation
|
||||
# https://docs.djangoproject.com/en/1.10/ref/settings/#auth-password-validators
|
||||
|
||||
AUTH_PASSWORD_VALIDATORS = [
|
||||
{
|
||||
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
|
||||
},
|
||||
{
|
||||
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
|
||||
},
|
||||
{
|
||||
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
|
||||
},
|
||||
{
|
||||
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
|
||||
},
|
||||
]
|
||||
|
||||
AUTH_PROFILE_MODULE = 'teamplayer.UserProfile'
|
||||
LOGIN_REDIRECT_URL = '/'
|
||||
|
||||
REST_FRAMEWORK = {
|
||||
'DEFAULT_PERMISSION_CLASSES': [
|
||||
'rest_framework.permissions.IsAuthenticated',
|
||||
],
|
||||
}
|
||||
|
||||
# Internationalization
|
||||
# https://docs.djangoproject.com/en/1.10/topics/i18n/
|
||||
|
||||
LANGUAGE_CODE = 'en-us'
|
||||
|
||||
TIME_ZONE = 'UTC'
|
||||
|
||||
USE_I18N = True
|
||||
|
||||
USE_L10N = True
|
||||
|
||||
USE_TZ = True
|
||||
|
||||
|
||||
# Static files (CSS, JavaScript, Images)
|
||||
# https://docs.djangoproject.com/en/1.10/howto/static-files/
|
||||
|
||||
STATIC_URL = '/static/'
|
||||
STATIC_ROOT = 'TP_HOME' + '/static/'
|
||||
|
||||
MEDIA_ROOT = 'TP_DB'
|
||||
|
||||
`TP_HOME' = 'TP_HOME'
|
||||
|
||||
HAYSTACK_CONNECTIONS = {
|
||||
'default': {
|
||||
'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
|
||||
'PATH': os.path.join(`TP_HOME', 'library_index'),
|
||||
},
|
||||
}
|
||||
HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
|
||||
HAYSTACK_CUSTOM_HIGHLIGHTER = 'teamplayer.library.Highlighter'
|
||||
|
||||
TEAMPLAYER = {
|
||||
'STREAM_URL': '/stream.mp3',
|
||||
'MPD_HOME': 'TP_DB/mpd',
|
||||
'MPD_LOG': '/dev/null',
|
||||
'UPLOADED_LIBRARY_DIR': 'TP_HOME/library',
|
||||
'CROSSFADE': 5,
|
||||
'SHAKE_THINGS_UP': 7,
|
||||
'ALWAYS_SHAKE_THINGS_UP': True,
|
||||
'AUTOFILL_STRATEGY': 'contiguous',
|
||||
'HTTP_PORT': 8000,
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
[Unit]
|
||||
Description=TeamPlayer (Pre)
|
||||
Documentation=https://bitbucket.org/marduk/teamplayer/
|
||||
Requires=postgresql-PGVER.service
|
||||
After=postgresql-PGVER.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
User=TP_USER
|
||||
Environment=PYTHONPATH=TP_HOME
|
||||
Environment=DJANGO_SETTINGS_MODULE=project.settings
|
||||
WorkingDirectory=TP_HOME
|
||||
ExecStart=-/usr/bin/createuser -U postgres -D -S -R TP_USER
|
||||
ExecStart=-/usr/bin/createdb -U postgres TP_USER
|
||||
ExecStart=TP_HOME/bin/python manage.py migrate --noinput
|
|
@ -1,16 +0,0 @@
|
|||
[Unit]
|
||||
Description=TeamPlayer Spin Doctor
|
||||
Documentation=https://bitbucket.org/marduk/teamplayer/
|
||||
Requires=teamplayer-pre.service
|
||||
After=teamplayer-pre.service
|
||||
After=teamplayer-wsgi.service
|
||||
|
||||
[Service]
|
||||
User=TP_USER
|
||||
Environment=PYTHONPATH=TP_HOME
|
||||
Environment=DJANGO_SETTINGS_MODULE=project.settings
|
||||
WorkingDirectory=TP_HOME
|
||||
ExecStart=TP_HOME/bin/python manage.py spindoctor --verbosity=2
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
|
@ -1,23 +0,0 @@
|
|||
[Unit]
|
||||
Description=TeamPlayer WSGI Server
|
||||
Documentation=https://bitbucket.org/marduk/teamplayer/
|
||||
Requires=teamplayer-pre.service
|
||||
After=teamplayer-pre.service
|
||||
Wants=nginx.service
|
||||
|
||||
[Service]
|
||||
Type=notify
|
||||
User=teamplayer
|
||||
WorkingDirectory=/opt/teamplayer
|
||||
Environment=PYTHONPATH=/opt/teamplayer
|
||||
Environment=DJANGO_SETTINGS_MODULE=project.settings
|
||||
WorkingDirectory=/opt/teamplayer
|
||||
ExecStart=/opt/teamplayer/bin/uwsgi --master -p 4 \
|
||||
--socket=TP_DB/teamplayer.sock \
|
||||
--chmod=660 -w project.wsgi --uid=teamplayer --gid=teamplayer \
|
||||
--pidfile=TP_DB/teamplayer.pid
|
||||
PIDFile=TP_DB/teamplayer.pid
|
||||
KillSignal=SIGQUIT
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
|
@ -1,7 +0,0 @@
|
|||
<service-group>
|
||||
<name>TeamPlayer</name>
|
||||
<service>
|
||||
<type>_http._tcp</type>
|
||||
<port>80</port>
|
||||
</service>
|
||||
</service-group>
|
|
@ -1,8 +0,0 @@
|
|||
from django.conf.urls import include, url
|
||||
|
||||
from django.contrib.auth.views import LoginView
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^accounts/login/$', LoginView.as_view()),
|
||||
url(r'', include('teamplayer.urls')),
|
||||
]
|
|
@ -1,3 +0,0 @@
|
|||
dev-db/postgresql:11
|
||||
media-sound/mpd
|
||||
www-servers/nginx
|
|
@ -1,19 +0,0 @@
|
|||
VABUILDER_HOME = /var/lib/vabuilder
|
||||
VABUILDER_REPO = https://bitbucket.org/marduk/virtual-appliance/
|
||||
VABUILDER_REV = default
|
||||
|
||||
M4_DEFS += -D VABUILDER_HOME=$(VABUILDER_HOME) -D HOSTNAME=$(HOSTNAME)
|
||||
M4C = $(M4) $(M4_DEFS)
|
||||
|
||||
preinstall:
|
||||
|
||||
postinstall: nginx.conf.m4
|
||||
RUN rm -rf $(VABUILDER_HOME)
|
||||
RUN hg clone -u $(VABUILDER_REV) $(VABUILDER_REPO) $(VABUILDER_HOME)
|
||||
RUN ln -nsf $(VABUILDER_HOME) /root/vabuilder
|
||||
$(M4C) nginx.conf.m4 > $(CHROOT)/etc/nginx/nginx.conf
|
||||
RUN systemctl enable nginx.service
|
||||
|
||||
|
||||
clean:
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
PYTHON_SINGLE_TARGET=python3_6
|
||||
NGINX_MODULES_HTTP="auth_basic fancyindex gzip proxy referer rewrite headers_more uwsgi"
|
|
@ -1,80 +0,0 @@
|
|||
user nginx nginx;
|
||||
worker_processes 1;
|
||||
|
||||
error_log /var/log/nginx/error_log info;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
use epoll;
|
||||
}
|
||||
|
||||
http {
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
log_format main
|
||||
'$remote_addr - $remote_user [$time_local] '
|
||||
'"$request" $status $bytes_sent '
|
||||
'"$http_referer" "$http_user_agent" '
|
||||
'"$gzip_ratio"';
|
||||
|
||||
client_header_timeout 10m;
|
||||
client_body_timeout 10m;
|
||||
send_timeout 10m;
|
||||
|
||||
connection_pool_size 256;
|
||||
client_header_buffer_size 1k;
|
||||
large_client_header_buffers 4 2k;
|
||||
request_pool_size 4k;
|
||||
|
||||
gzip on;
|
||||
gzip_min_length 1100;
|
||||
gzip_buffers 4 8k;
|
||||
gzip_types text/plain;
|
||||
|
||||
output_buffers 1 32k;
|
||||
postpone_output 1460;
|
||||
|
||||
sendfile on;
|
||||
tcp_nopush on;
|
||||
tcp_nodelay on;
|
||||
|
||||
keepalive_timeout 75 20;
|
||||
|
||||
ignore_invalid_headers on;
|
||||
|
||||
index index.html;
|
||||
|
||||
server {
|
||||
listen 0.0.0.0;
|
||||
server_name HOSTNAME;
|
||||
|
||||
access_log /var/log/nginx/HOSTNAME.access_log main;
|
||||
error_log /var/log/nginx/HOSTNAME.error_log info;
|
||||
|
||||
root /var/www/localhost/htdocs;
|
||||
|
||||
location /images/ {
|
||||
alias VABUILDER_HOME/images/;
|
||||
fancyindex on;
|
||||
fancyindex_exact_size off;
|
||||
fancyindex_localtime on;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
# SSL example
|
||||
#server {
|
||||
# listen 127.0.0.1:443;
|
||||
# server_name HOSTNAME;
|
||||
|
||||
# ssl on;
|
||||
# ssl_certificate /etc/ssl/nginx/nginx.pem;
|
||||
# ssl_certificate_key /etc/ssl/nginx/nginx.key;
|
||||
|
||||
# access_log /var/log/nginx/HOSTNAME.ssl_access_log main;
|
||||
# error_log /var/log/nginx/HOSTNAME.ssl_error_log info;
|
||||
|
||||
# root /var/www/localhost/htdocs;
|
||||
#}
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
sys-kernel/gentoo-sources ~amd64 ~x86
|
|
@ -1,20 +0,0 @@
|
|||
app-editors/nano ncurses
|
||||
dev-lang/python ssl threads xml
|
||||
dev-libs/libpcre cxx
|
||||
dev-util/pkgconfig internal-glib
|
||||
net-misc/openssh ssl
|
||||
net-misc/wget ssl
|
||||
sys-apps/hwids udev
|
||||
sys-apps/kmod tools
|
||||
sys-apps/net-tools hostname
|
||||
sys-apps/portage ipc
|
||||
sys-auth/pambase nullok sha512
|
||||
sys-devel/gcc cxx nptl
|
||||
sys-kernel/gentoo-sources symlink
|
||||
sys-process/procps kill
|
||||
|
||||
# appliance-specific
|
||||
app-emulation/qemu python_targets_python2_7
|
||||
dev-lang/python ncurses readline
|
||||
dev-vcs/mercurial python_targets_python2_7
|
||||
www-servers/nginx http
|
|
@ -1,6 +0,0 @@
|
|||
app-emulation/qemu
|
||||
dev-libs/glib
|
||||
dev-vcs/git
|
||||
dev-vcs/mercurial
|
||||
sys-block/parted
|
||||
www-servers/nginx
|
|
@ -1,14 +0,0 @@
|
|||
xdm_files := $(wildcard xdm/*)
|
||||
xdm_targets := $(patsubst %,$(CHROOT)/etc/X11/%,$(xdm_files))
|
||||
|
||||
|
||||
$(CHROOT)/etc/X11/xdm/%: xdm/%
|
||||
cp $< $@
|
||||
|
||||
preinstall:
|
||||
|
||||
postinstall: $(xdm_targets)
|
||||
RUN systemctl enable xdm
|
||||
|
||||
clean:
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
PYTHON_TARGETS="python3_6"
|
||||
PYTHON_SINGLE_TARGET="python3_6"
|
||||
VIDEO_CARDS=""
|
||||
INPUT_DEVICES=""
|
||||
INSTALL_MASK="$INSTALL_MASK /etc/X11/xdm/Xaccess /etc/X11/xdm/xdm-config /etc/X11/xdm/Xservers"
|
|
@ -1 +0,0 @@
|
|||
sys-kernel/gentoo-sources ~amd64 ~x86
|
|
@ -1,12 +0,0 @@
|
|||
dev-lang/python ssl xml
|
||||
dev-libs/libxml2 python
|
||||
dev-util/pkgconfig internal-glib
|
||||
net-misc/openssh ssl
|
||||
net-misc/wget ssl
|
||||
sys-apps/hwids udev
|
||||
sys-apps/kmod tools
|
||||
sys-apps/net-tools hostname
|
||||
sys-auth/pambase nullok sha512
|
||||
sys-devel/gcc cxx nptl
|
||||
sys-process/procps kill
|
||||
x11-base/xorg-server minimal xorg
|
|
@ -1,33 +0,0 @@
|
|||
x11-apps/xcalc
|
||||
x11-apps/xdm
|
||||
x11-apps/xedit
|
||||
x11-apps/xeyes
|
||||
x11-apps/xload
|
||||
x11-apps/xlogo
|
||||
x11-apps/iceauth
|
||||
x11-apps/mkfontdir
|
||||
x11-apps/mkfontscale
|
||||
x11-apps/sessreg
|
||||
x11-apps/setxkbmap
|
||||
x11-apps/xauth
|
||||
x11-apps/xbacklight
|
||||
x11-apps/xdpyinfo
|
||||
x11-apps/xev
|
||||
x11-apps/xgamma
|
||||
x11-apps/xhost
|
||||
x11-apps/xinput
|
||||
x11-apps/xkbcomp
|
||||
x11-apps/xkill
|
||||
x11-apps/xlsatoms
|
||||
x11-apps/xlsclients
|
||||
x11-apps/xmodmap
|
||||
x11-apps/xprop
|
||||
x11-apps/xrandr
|
||||
x11-apps/xrdb
|
||||
x11-apps/xrefresh
|
||||
x11-apps/xset
|
||||
x11-apps/xsetroot
|
||||
x11-apps/xvinfo
|
||||
x11-apps/xwd
|
||||
x11-apps/xwininfo
|
||||
x11-apps/xwud
|
|
@ -1,101 +0,0 @@
|
|||
# $XdotOrg: Xaccess,v 1.3 2000/08/17 19:54:17 cpqbld Exp $
|
||||
# $Xorg: Xaccess,v 1.3 2000/08/17 19:54:17 cpqbld Exp $
|
||||
# $XFree86: xc/programs/xdm/config/Xaccess,v 1.4 2003/07/09 15:27:40 tsi Exp $
|
||||
#
|
||||
# Access control file for XDMCP connections
|
||||
#
|
||||
# To control Direct and Broadcast access:
|
||||
#
|
||||
# pattern
|
||||
#
|
||||
# To control Indirect queries:
|
||||
#
|
||||
# pattern list of hostnames and/or macros ...
|
||||
#
|
||||
# To use the chooser:
|
||||
#
|
||||
# pattern CHOOSER BROADCAST
|
||||
#
|
||||
# or
|
||||
#
|
||||
# pattern CHOOSER list of hostnames and/or macros ...
|
||||
#
|
||||
# To define macros:
|
||||
#
|
||||
# %name list of hosts ...
|
||||
#
|
||||
# To control which addresses xdm listens for requests on:
|
||||
#
|
||||
# LISTEN address [list of multicast groups ... ]
|
||||
#
|
||||
# The first form tells xdm which displays to respond to itself.
|
||||
# The second form tells xdm to forward indirect queries from hosts matching
|
||||
# the specified pattern to the indicated list of hosts.
|
||||
# The third form tells xdm to handle indirect queries using the chooser;
|
||||
# the chooser is directed to send its own queries out via the broadcast
|
||||
# address and display the results on the terminal.
|
||||
# The fourth form is similar to the third, except instead of using the
|
||||
# broadcast address, it sends DirectQuerys to each of the hosts in the list
|
||||
# The fifth form tells xdm which addresses to listen for incoming connections
|
||||
# on. If present, xdm will only listen for connections on the specified
|
||||
# interfaces and/or multicast groups.
|
||||
#
|
||||
# In all cases, xdm uses the first entry which matches the terminal;
|
||||
# for IndirectQuery messages only entries with right hand sides can
|
||||
# match, for Direct and Broadcast Query messages, only entries without
|
||||
# right hand sides can match.
|
||||
#
|
||||
|
||||
* #any host can get a login window
|
||||
|
||||
#
|
||||
# To hardwire a specific terminal to a specific host, you can
|
||||
# leave the terminal sending indirect queries to this host, and
|
||||
# use an entry of the form:
|
||||
#
|
||||
|
||||
#terminal-a host-a
|
||||
|
||||
|
||||
#
|
||||
# The nicest way to run the chooser is to just ask it to broadcast
|
||||
# requests to the network - that way new hosts show up automatically.
|
||||
# Sometimes, however, the chooser can't figure out how to broadcast,
|
||||
# so this may not work in all environments.
|
||||
#
|
||||
|
||||
#* CHOOSER BROADCAST #any indirect host can get a chooser
|
||||
|
||||
#
|
||||
# If you'd prefer to configure the set of hosts each terminal sees,
|
||||
# then just uncomment these lines (and comment the CHOOSER line above)
|
||||
# and edit the %hostlist line as appropriate
|
||||
#
|
||||
|
||||
#%hostlist host-a host-b
|
||||
|
||||
#* CHOOSER %hostlist #
|
||||
|
||||
#
|
||||
# If you have a machine with multiple network interfaces or IP addresses
|
||||
# you can control which interfaces accept XDMCP packets by listing a LISTEN
|
||||
# line for each interface you want to listen on. You can additionally list
|
||||
# one or more multicast groups after each address to listen on those groups
|
||||
# on that address.
|
||||
#
|
||||
# If no LISTEN is specified, the default is the same as "LISTEN *" - listen on
|
||||
# all unicast interfaces, but not for multicast packets. If any LISTEN lines
|
||||
# are specified, then only the listed interfaces will be listened on.
|
||||
#
|
||||
# IANA has assigned FF0X:0:0:0:0:0:0:12B as the permanently assigned
|
||||
# multicast addresses for XDMCP, where X in the prefix may be replaced
|
||||
# by any valid scope identifier, such as 1 for Node-Local, 2 for Link-Local,
|
||||
# 5 for Site-Local, and so on. The default is equivalent to the example shown
|
||||
# here using the Link-Local version to most closely match the old IPv4 subnet
|
||||
# broadcast behavior.
|
||||
#
|
||||
# LISTEN * ff02:0:0:0:0:0:0:12b
|
||||
|
||||
# This example shows listening for multicast on all scopes up to site-local
|
||||
#
|
||||
# LISTEN * ff01:0:0:0:0:0:0:12b ff02:0:0:0:0:0:0:12b ff03:0:0:0:0:0:0:12b ff04:0:0:0:0:0:0:12b ff05:0:0:0:0:0:0:12b
|
|
@ -1,13 +0,0 @@
|
|||
# $Xorg: Xserv.ws.cpp,v 1.3 2000/08/17 19:54:17 cpqbld Exp $
|
||||
#
|
||||
# Xservers file, workstation prototype
|
||||
#
|
||||
# This file should contain an entry to start the server on the
|
||||
# local display; if you have more than one display (not screen),
|
||||
# you can add entries to the list (one per line). If you also
|
||||
# have some X terminals connected which do not support XDMCP,
|
||||
# you can add them here as well. Each X terminal line should
|
||||
# look like:
|
||||
# XTerminalName:0 foreign
|
||||
#
|
||||
#:0 local /usr/bin/X :0 vt7
|
|
@ -1,41 +0,0 @@
|
|||
! $Xorg: xdm-conf.cpp,v 1.3 2000/08/17 19:54:17 cpqbld Exp $
|
||||
! $XdotOrg: $
|
||||
!
|
||||
!
|
||||
!
|
||||
!
|
||||
! $XFree86: xc/programs/xdm/config/xdm-conf.cpp,v 1.10 2002/11/30 19:11:32 herrb Exp $
|
||||
!
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DisplayManager.errorLogFile: /var/log/xdm.log
|
||||
DisplayManager.pidFile: /var/run/xdm.pid
|
||||
DisplayManager.keyFile: /etc/X11/xdm/xdm-keys
|
||||
DisplayManager.servers: /etc/X11/xdm/Xservers
|
||||
DisplayManager.accessFile: /etc/X11/xdm/Xaccess
|
||||
DisplayManager*resources: /etc/X11/xdm/Xresources
|
||||
DisplayManager.willing: /usr/lib/X11/xdm/Xwilling
|
||||
! All displays should use authorization, but we cannot be sure
|
||||
! X terminals may not be configured that way, so they will require
|
||||
! individual resource settings.
|
||||
DisplayManager*authorize: true
|
||||
!
|
||||
DisplayManager*chooser: /usr/lib/X11/xdm/chooser
|
||||
DisplayManager*startup: /usr/lib/X11/xdm/Xstartup
|
||||
DisplayManager*session: /usr/lib/X11/xdm/Xsession
|
||||
DisplayManager*reset: /usr/lib/X11/xdm/Xreset
|
||||
DisplayManager*authComplain: true
|
||||
! The following three resources set up display :0 as the console.
|
||||
DisplayManager._0.setup: /usr/lib/X11/xdm/Xsetup_0
|
||||
DisplayManager._0.startup: /usr/lib/X11/xdm/GiveConsole
|
||||
DisplayManager._0.reset: /usr/lib/X11/xdm/TakeConsole
|
||||
|
||||
DisplayManager*loginmoveInterval: 10
|
||||
|
||||
! SECURITY: do not listen for XDMCP or Chooser requests
|
||||
! Comment out this line if you want to manage X terminals with xdm
|
||||
! DisplayManager.requestPort: 0
|
Loading…
Reference in New Issue