Parcourir la source

initial commit

Veizour il y a 6 ans
commit
937331cfa8
13 fichiers modifiés avec 520 ajouts et 0 suppressions
  1. 37 0
      000-default.conf
  2. 122 0
      Dockerfile
  3. 3 0
      README.md
  4. 3 0
      apache-finish.sh
  5. 3 0
      apache-run.sh
  6. 237 0
      apache2.conf
  7. 1 0
      crons.conf
  8. 24 0
      firstrun.sh
  9. 7 0
      inotify.sh
  10. 26 0
      ossn.config.db
  11. 14 0
      ossn.config.site
  12. 8 0
      ports.conf
  13. 35 0
      proxy-config.conf

+ 37 - 0
000-default.conf

@@ -0,0 +1,37 @@
+<VirtualHost *:80>
+     ServerAdmin <<admin@server>>
+     DocumentRoot /var/www/html/ossn
+     ServerName <<servername>>
+
+     <Directory /var/www/html/ossn>
+          Options FollowSymlinks
+          AllowOverride All
+          Require all granted
+     </Directory>
+
+     ErrorLog ${APACHE_LOG_DIR}/ossn_error.log
+     CustomLog ${APACHE_LOG_DIR}/ossn_access.log combined
+
+</VirtualHost>
+
+#<VirtualHost *:443>
+
+	#ServerName <<servername>>
+	#ServerAdmin <<admin@server>>
+	#DocumentRoot /var/www/html/ossn
+
+	#ErrorLog ${APACHE_LOG_DIR}/443_ossn_error.log
+	#CustomLog ${APACHE_LOG_DIR}/443_ossn_access.log combined
+	
+	#SSLEngine on
+    	#SSLProtocol All -SSLv2 -SSLv3
+    	#SSLCipherSuite AES128+EECDH:AES128+EDH
+    	#SSLCertificateFile /config/ssl.crt
+    	#SSLCertificateKeyFile /config/decryptedssl.key
+    	#SSLCertificateChainFile /config/sub.class1.server.ca.pem
+
+
+#</VirtualHost>
+		
+
+#vim: syntax=apache ts=4 sw=4 sts=4 sr noet

+ 122 - 0
Dockerfile

@@ -0,0 +1,122 @@
+FROM phusion/baseimage:0.11
+MAINTAINER veizour
+
+# Set correct environment variables
+ENV DEBIAN_FRONTEND noninteractive
+ENV HOME            /root
+ENV LC_ALL          C.UTF-8
+ENV LANG            en_US.UTF-8
+ENV LANGUAGE        en_US.UTF-8
+ENV TERM xterm
+
+
+# Use baseimage-docker's init system
+CMD ["/sbin/my_init"]
+
+
+# Configure user nobody to match unRAID's settings
+ RUN \
+ usermod -u 99 nobody && \
+ usermod -g 100 nobody && \
+ usermod -d /home nobody && \
+ chown -R nobody:users /home
+
+
+RUN add-apt-repository ppa:ondrej/php
+RUN apt-get update
+RUN apt-get upgrade -y
+RUN apt-get install -y mc
+RUN apt-get install -y tmux
+
+
+# Install proxy Dependencies
+RUN apt-get update -y
+RUN apt-get install -y apache2
+RUN apt-get install -y php7.1 php7.1-common libapache2-mod-php7.1 php7.1-mcrypt php7.1-cli php7.1-xml \
+                       php7.1-mysql mysqlnd php7.1-gd php7.1-imagick php7.1-recode php7.1-tidy php7.1-xmlrpc \
+                       php-curl php7.1-mbstring php7.1-soap php7.1-intl php7.1-ldap php7.1-imap php-xml \
+                       php7.1-sqlite php7.1-mcrypt php7.1-zip inotify-tools
+
+RUN apt-get clean -y
+RUN rm -rf /var/lib/apt/lists/*
+ 
+RUN \
+  service apache2 restart && \
+  rm -R -f /var/www && \
+  ln -s /web /var/www
+  
+RUN \
+  wget https://www.opensource-socialnetwork.org/download_ossn/latest/build.zip && \
+  mv ./build.zip /tmp && \
+  unzip build.zip && \
+  cp -r ossn /var/www/html/ && \
+  chown -R www-data:www-data /var/www/html/ossn/ && \
+  chmod -R 755 /var/www/html/ossn/ && \
+  chown -R www-data:www-data /var/www/html/ossn_data
+  
+# Update apache configuration with this one
+RUN \
+  mv /etc/apache2/sites-available/000-default.conf /etc/apache2/000-default.conf && \
+  rm /etc/apache2/sites-available/* && \
+  rm /etc/apache2/apache2.conf && \
+  ln -s /config/proxy-config.conf /etc/apache2/sites-available/000-default.conf && \
+  ln -s /var/log/apache2 /logs
+
+# Update ossn.config.db configs with variables
+RUN \
+  set 's/<<host>>/${DBHost}/g' ossn.config.db
+  set 's/<<port>>/${DBPort}/g' ossn.config.db
+  set 's/<<password>>/${DBPassword}/g' ossn.config.db
+  set 's/<<dbname>>/${DBUsername}/g' ossn.config.db
+
+# Update ossn.config.site configs with variables
+RUN \
+  set 's/<<siteurl>>/${SiteURL}/g' ossn.config.site
+  set 's/<<datadir>>/${DataDirectory}/g' ossn.config.site
+
+# Update ossn.conf configs with variables
+RUN \
+  set 's/<<admin@server>>/${adminlogin}/g' ossn.conf
+  set 's/<<servername>>/${servername}/g' ossn.conf
+  
+ADD ossn.conf /etc/apache2/000-default.conf
+ADD apache2.conf /etc/apache2/apache2.conf
+ADD ports.conf /etc/apache2/ports.conf
+ADD ossn.config.db /var/www/html/ossn/configuration/ossn.config.db
+ADD ossn.config.site /var/www/html/ossn/configuration/ossn.config.site
+
+# Manually set the apache environment variables in order to get apache to work immediately.
+RUN \
+echo www-data > /etc/container_environment/APACHE_RUN_USER && \
+echo www-data > /etc/container_environment/APACHE_RUN_GROUP && \
+echo /var/log/apache2 > /etc/container_environment/APACHE_LOG_DIR && \
+echo /var/lock/apache2 > /etc/container_environment/APACHE_LOCK_DIR && \
+echo /var/run/apache2.pid > /etc/container_environment/APACHE_PID_FILE && \
+echo /var/run/apache2 > /etc/container_environment/APACHE_RUN_DIR
+
+# Expose Ports
+EXPOSE 80 443
+
+# The www directory and proxy config location
+VOLUME ["/config", "/web", "/logs"]
+
+# Add our crontab file
+ADD crons.conf /root/crons.conf
+
+# Add firstrun.sh to execute during container startup
+ADD firstrun.sh /etc/my_init.d/firstrun.sh
+RUN chmod +x /etc/my_init.d/firstrun.sh
+
+# Add inotify.sh to execute during container startup
+RUN mkdir /etc/service/inotify
+ADD inotify.sh /etc/service/inotify/run
+RUN chmod +x /etc/service/inotify/run
+
+# Add apache to runit
+RUN mkdir /etc/service/apache
+ADD apache-run.sh /etc/service/apache/run
+RUN chmod +x /etc/service/apache/run
+ADD apache-finish.sh /etc/service/apache/finish
+RUN chmod +x /etc/service/apache/finish
+
+RUN a2enmod rewrite

+ 3 - 0
README.md

@@ -0,0 +1,3 @@
+# Docker-OSSN
+
+This installs Apache-PHP and Open Source Social Network in Docker form.

+ 3 - 0
apache-finish.sh

@@ -0,0 +1,3 @@
+#!/bin/bash
+
+service apache2 stop

+ 3 - 0
apache-run.sh

@@ -0,0 +1,3 @@
+#!/bin/bash
+
+exec /usr/sbin/apache2 -D FOREGROUND

+ 237 - 0
apache2.conf

@@ -0,0 +1,237 @@
+#
+# Based upon the NCSA server configuration files originally by Rob McCool.
+#
+# This is the main Apache server configuration file.  It contains the
+# configuration directives that give the server its instructions.
+# See http://httpd.apache.org/docs/2.2/ for detailed information about
+# the directives.
+#
+# Do NOT simply read the instructions in here without understanding
+# what they do.  They're here only as hints or reminders.  If you are unsure
+# consult the online docs. You have been warned.  
+#
+# The configuration directives are grouped into three basic sections:
+#  1. Directives that control the operation of the Apache server process as a
+#     whole (the 'global environment').
+#  2. Directives that define the parameters of the 'main' or 'default' server,
+#     which responds to requests that aren't handled by a virtual host.
+#     These directives also provide default values for the settings
+#     of all virtual hosts.
+#  3. Settings for virtual hosts, which allow Web requests to be sent to
+#     different IP addresses or hostnames and have them handled by the
+#     same Apache server process.
+#
+# Configuration and logfile names: If the filenames you specify for many
+# of the server's control files begin with "/" (or "drive:/" for Win32), the
+# server will use that explicit path.  If the filenames do *not* begin
+# with "/", the value of ServerRoot is prepended -- so "/var/log/apache2/foo.log"
+# with ServerRoot set to "" will be interpreted by the
+# server as "//var/log/apache2/foo.log".
+#
+
+### Section 1: Global Environment
+#
+# The directives in this section affect the overall operation of Apache,
+# such as the number of concurrent requests it can handle or where it
+# can find its configuration files.
+#
+
+#
+# ServerRoot: The top of the directory tree under which the server's
+# configuration, error, and log files are kept.
+#
+# NOTE!  If you intend to place this on an NFS (or otherwise network)
+# mounted filesystem then please read the LockFile documentation (available
+# at <URL:http://httpd.apache.org/docs-2.1/mod/mpm_common.html#lockfile>);
+# you will save yourself a lot of trouble.
+#
+# Do NOT add a slash at the end of the directory path.
+#
+ServerRoot "/var/www"
+ServerName localhost
+
+#
+# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
+#
+#<IfModule !mpm_winnt.c>
+#<IfModule !mpm_netware.c>
+#LockFile /var/lock/apache2/accept.lock
+#</IfModule>
+#</IfModule>
+
+#
+# PidFile: The file in which the server should record its process
+# identification number when it starts.
+# This needs to be set in /etc/apache2/envvars
+#
+PidFile ${APACHE_PID_FILE}
+
+#
+# Timeout: The number of seconds before receives and sends time out.
+#
+Timeout 300
+
+#
+# KeepAlive: Whether or not to allow persistent connections (more than
+# one request per connection). Set to "Off" to deactivate.
+#
+KeepAlive On
+
+#
+# MaxKeepAliveRequests: The maximum number of requests to allow
+# during a persistent connection. Set to 0 to allow an unlimited amount.
+# We recommend you leave this number high, for maximum performance.
+#
+MaxKeepAliveRequests 100
+
+#
+# KeepAliveTimeout: Number of seconds to wait for the next request from the
+# same client on the same connection.
+#
+KeepAliveTimeout 15
+
+##
+## Server-Pool Size Regulation (MPM specific)
+## 
+
+# prefork MPM
+# StartServers: number of server processes to start
+# MinSpareServers: minimum number of server processes which are kept spare
+# MaxSpareServers: maximum number of server processes which are kept spare
+# MaxClients: maximum number of server processes allowed to start
+# MaxRequestsPerChild: maximum number of requests a server process serves
+<IfModule mpm_prefork_module>
+    StartServers          5
+    MinSpareServers       5
+    MaxSpareServers      10
+    MaxClients          150
+    MaxRequestsPerChild   0
+</IfModule>
+
+# worker MPM
+# StartServers: initial number of server processes to start
+# MaxClients: maximum number of simultaneous client connections
+# MinSpareThreads: minimum number of worker threads which are kept spare
+# MaxSpareThreads: maximum number of worker threads which are kept spare
+# ThreadsPerChild: constant number of worker threads in each server process
+# MaxRequestsPerChild: maximum number of requests a server process serves
+<IfModule mpm_worker_module>
+    StartServers          2
+    MinSpareThreads      25
+    MaxSpareThreads      75 
+    ThreadLimit          64
+    ThreadsPerChild      25
+    MaxClients          150
+    MaxRequestsPerChild   0
+</IfModule>
+
+# event MPM
+# StartServers: initial number of server processes to start
+# MaxClients: maximum number of simultaneous client connections
+# MinSpareThreads: minimum number of worker threads which are kept spare
+# MaxSpareThreads: maximum number of worker threads which are kept spare
+# ThreadsPerChild: constant number of worker threads in each server process
+# MaxRequestsPerChild: maximum number of requests a server process serves
+<IfModule mpm_event_module>
+    StartServers          2
+    MaxClients          150
+    MinSpareThreads      25
+    MaxSpareThreads      75 
+    ThreadLimit          64
+    ThreadsPerChild      25
+    MaxRequestsPerChild   0
+</IfModule>
+
+# These need to be set in /etc/apache2/envvars
+User ${APACHE_RUN_USER}
+Group ${APACHE_RUN_GROUP}
+
+#
+# AccessFileName: The name of the file to look for in each directory
+# for additional configuration directives.  See also the AllowOverride
+# directive.
+#
+
+AccessFileName .htaccess
+
+#
+# The following lines prevent .htaccess and .htpasswd files from being 
+# viewed by Web clients. 
+#
+<Files ~ "^\.ht">
+    Order allow,deny
+    Deny from all
+    Satisfy all
+</Files>
+
+#
+# DefaultType is the default MIME type the server will use for a document
+# if it cannot otherwise determine one, such as from filename extensions.
+# If your server contains mostly text or HTML documents, "text/plain" is
+# a good value.  If most of your content is binary, such as applications
+# or images, you may want to use "application/octet-stream" instead to
+# keep browsers from trying to display binary files as though they are
+# text.
+#
+#DefaultType text/plain
+
+
+#
+# HostnameLookups: Log the names of clients or just their IP addresses
+# e.g., www.apache.org (on) or 204.62.129.132 (off).
+# The default is off because it'd be overall better for the net if people
+# had to knowingly turn this feature on, since enabling it means that
+# each client request will result in AT LEAST one lookup request to the
+# nameserver.
+#
+HostnameLookups Off
+
+# ErrorLog: The location of the error log file.
+# If you do not specify an ErrorLog directive within a <VirtualHost>
+# container, error messages relating to that virtual host will be
+# logged here.  If you *do* define an error logfile for a <VirtualHost>
+# container, that host's errors will be logged there and not here.
+#
+ErrorLog /var/log/apache2/error.log
+
+#
+# LogLevel: Control the number of messages logged to the error_log.
+# Possible values include: debug, info, notice, warn, error, crit,
+# alert, emerg.
+#
+LogLevel warn
+
+# Include module configuration:
+Include /etc/apache2/mods-enabled/*.load
+Include /etc/apache2/mods-enabled/*.conf
+
+# Include all the user configurations:
+#Include /etc/apache2/httpd.conf
+
+# Include ports listing
+Include /etc/apache2/ports.conf
+
+#
+# The following directives define some format nicknames for use with
+# a CustomLog directive (see below).
+# If you are behind a reverse proxy, you might want to change %h into %{X-Forwarded-For}i
+#
+LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
+LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
+LogFormat "%h %l %u %t \"%r\" %>s %O" common
+LogFormat "%{Referer}i -> %U" referer
+LogFormat "%{User-agent}i" agent
+
+#
+# Define an access log for VirtualHosts that don't define their own logfile
+CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined
+
+
+# Include of directories ignores editors' and dpkg's backup files,
+# see README.Debian for details.
+
+# Include generic snippets of statements
+#Include /etc/apache2/conf.d/
+
+# Include the virtual host configurations:
+Include /etc/apache2/sites-enabled/

+ 1 - 0
crons.conf

@@ -0,0 +1 @@
+#1 * * * * add any cron strings here 

+ 24 - 0
firstrun.sh

@@ -0,0 +1,24 @@
+#!/bin/bash
+
+# Check if config exists. If not, copy in the sample config
+if [ -f /config/proxy-config.conf ]; then
+  echo "Using existing config file."
+else
+  echo "Creating config from template."
+  mv /etc/apache2/000-default.conf /config/proxy-config.conf
+  cp /root/.htpasswd /config/.htpasswd
+fi
+
+# Add Persistent Cron Configuration Capability
+if [ -f /config/crons.conf ]; then
+  echo "Using existing Cron config file."
+#  crontab /config/crons.conf
+#  cron
+else
+  echo "Copying blank  Cron config file."
+  cp /root/crons.conf /config/crons.conf
+#  crontab /config/crons.conf
+#  cron
+fi
+
+

+ 7 - 0
inotify.sh

@@ -0,0 +1,7 @@
+#!/bin/sh
+
+while inotifywait -e modify /config; do
+    sv down /etc/service/apache/
+    sv up /etc/service/apache/
+    echo "File in Config Folder Changed, Restarted"
+done

+ 26 - 0
ossn.config.db

@@ -0,0 +1,26 @@
+<?php
+/**
+ * Open Source Social Network
+ *
+ * @package   (softlab24.com).ossn
+ * @author    OSSN Core Team <info@softlab24.com>
+ * @copyright (C) SOFTLAB24 LIMITED
+ * @license   Open Source Social Network License (OSSN LICENSE)  http://www.opensource-socialnetwork.org/licence
+ * @link      https://www.opensource-socialnetwork.org/
+ */
+
+
+// replace <<host>> with your database host name;
+$Ossn->host = '<<host>>';
+
+// replace <<port>> with your database host name;
+$Ossn->port = '<<port>>';
+
+// replace <<user>> with your database username;
+$Ossn->user = '<<user>>';
+
+// replace <<password>> with your database password;
+$Ossn->password = '<<password>>';
+
+// replace <<dbname>> with your database name;
+$Ossn->database = '<<dbname>>';

+ 14 - 0
ossn.config.site

@@ -0,0 +1,14 @@
+<?php
+/**
+ * Open Source Social Network
+ *
+ * @package   (softlab24.com).ossn
+ * @author    OSSN Core Team <info@softlab24.com>
+ * @copyright (C) SOFTLAB24 LIMITED
+ * @license   Open Source Social Network License (OSSN LICENSE)  http://www.opensource-socialnetwork.org/licence
+ * @link      https://www.opensource-socialnetwork.org/
+ */
+
+$Ossn->url = '<<siteurl>>';
+$Ossn->userdata = '<<datadir>>';
+

+ 8 - 0
ports.conf

@@ -0,0 +1,8 @@
+# If you just change the port or add more ports here, you will likely also
+# have to change the VirtualHost statement in
+# /etc/apache2/sites-enabled/000-default.conf
+
+Listen 80
+Listen 443
+
+# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

+ 35 - 0
proxy-config.conf

@@ -0,0 +1,35 @@
+<VirtualHost *:80>
+
+  ServerAdmin webmaster@localhost
+  ServerName localhost    
+  ServerAlias yourserver.com
+   
+  DocumentRoot /var/www/
+  
+	ErrorLog ${APACHE_LOG_DIR}/error.log
+	CustomLog ${APACHE_LOG_DIR}/access.log combined
+	
+	
+</VirtualHost>
+
+#<VirtualHost *:443>
+
+	#ServerName www.example.com
+	#ServerAdmin webmaster@localhost
+	#DocumentRoot /var/www
+
+	#ErrorLog ${APACHE_LOG_DIR}/error.log
+	#CustomLog ${APACHE_LOG_DIR}/access.log combined
+	
+	#SSLEngine on
+    #	SSLProtocol All -SSLv2 -SSLv3
+    #	SSLCipherSuite AES128+EECDH:AES128+EDH
+    #	SSLCertificateFile /config/ssl.crt
+    #	SSLCertificateKeyFile /config/decryptedssl.key
+    #	SSLCertificateChainFile /config/sub.class1.server.ca.pem
+
+
+#</VirtualHost>
+		
+
+# vim: syntax=apache ts=4 sw=4 sts=4 sr noet