@@ -10,94 +10,94 @@ LABEL maintainer="TRW <trw@acoby.de>" \
10
10
11
11
ARG DEBIAN_FRONTEND=noninteractive
12
12
13
- ENV DB_MYSQL_HOST database
14
- ENV DB_MYSQL_PORT 3306
15
- ENV DB_MYSQL_NAME avideo
16
- ENV DB_MYSQL_USER avideo
17
- ENV DB_MYSQL_PASSWORD avideo
18
-
19
- ENV SERVER_NAME localhost
20
- ENV ENABLE_PHPMYADMIN yes
21
- ENV CREATE_TLS_CERTIFICATE yes
22
- ENV TLS_CERTIFICATE_FILE /etc/apache2/ssl/localhost.crt
23
- ENV TLS_CERTIFICATE_KEY /etc/apache2/ssl/localhost.key
24
- ENV CONTACT_EMAIL admin@localhost
25
- ENV SYSTEM_ADMIN_PASSWORD password
26
- ENV WEBSITE_TITLE AVideo
27
- ENV MAIN_LANGUAGE en_US
28
-
29
- ENV HTTPS_PORT $HTTPS_PORT
13
+ ARG SOCKET_PORT
14
+ ARG HTTP_PORT
15
+ ARG HTTPS_PORT
16
+ ARG NGINX_RTMP_PORT
17
+ ARG NGINX_HTTP_PORT
18
+ ARG NGINX_HTTPS_PORT
19
+ ARG DB_MYSQL_HOST
20
+ ARG DB_MYSQL_PORT
21
+ ARG DB_MYSQL_NAME
22
+ ARG DB_MYSQL_USER
23
+ ARG DB_MYSQL_PASSWORD
24
+ ARG SERVER_NAME
25
+ ARG CREATE_TLS_CERTIFICATE
26
+ ARG TLS_CERTIFICATE_FILE
27
+ ARG TLS_CERTIFICATE_KEY
28
+ ARG CONTACT_EMAIL
29
+ ARG SYSTEM_ADMIN_PASSWORD
30
+ ARG WEBSITE_TITLE
31
+ ARG MAIN_LANGUAGE
30
32
31
33
# Retrieve package list
32
34
RUN apt update
33
35
34
36
# Install dependencies
35
37
RUN apt-get update -y && apt-get upgrade -y \
36
- && apt install -y --no-install-recommends ca-certificates apt-transport-https software-properties-common curl \
38
+ && apt install -y --no-install-recommends dos2unix bash-completion lsof cron rsync ca-certificates apt-transport-https software-properties-common curl \
37
39
&& curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp \
38
40
&& chmod a+rx /usr/local/bin/yt-dlp \
39
- && apt install -y --no-install-recommends sshpass nano net-tools curl apache2 php8.1 libapache2-mod-php8.1 php8.1-mysql php8.1-curl php8.1-gd php8.1-intl \
40
- php-zip mysql-client ffmpeg git libimage-exiftool-perl libapache2-mod-xsendfile -y && a2enmod xsendfile && cd /var/www/html \
41
- && git clone https://github.com/WWBN/AVideo.git \
41
+ && apt install -y --no-install-recommends sshpass nano net-tools curl apache2 php8.1 libapache2-mod-php8.1 php8.1-mysql php8.1-sqlite3 php8.1-curl php8.1-gd php8.1-intl \
42
+ php-zip mysql-client ffmpeg git libimage-exiftool-perl libapache2-mod-xsendfile python3-certbot-apache -y && a2enmod xsendfile && cd /var/www/html \
42
43
&& apt install -y --no-install-recommends && curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl \
43
44
&& chmod a+rx /usr/local/bin/youtube-dl && apt install -y --no-install-recommends build-essential libpcre3 libpcre3-dev libssl-dev php8.1-xml -y \
44
- && a2enmod rewrite && chown www-data:www-data /var/www/html/AVideo/plugin && chmod 755 /var/www/html/AVideo/plugin \
45
+ && a2enmod rewrite \
45
46
&& apt install -y --no-install-recommends unzip -y && apt install -y --no-install-recommends htop python3-pip \
46
47
&& pip3 install youtube-dl && pip3 install --upgrade youtube-dl && a2enmod expires \
47
48
&& a2enmod headers
48
49
49
50
COPY deploy/apache/avideo.conf /etc/apache2/sites-enabled/000-default.conf
50
- COPY deploy/apache/phpmyadmin.conf /etc/apache2/conf-available/phpmyadmin.conf
51
51
COPY deploy/docker-entrypoint /usr/local/bin/docker-entrypoint
52
52
COPY deploy/wait-for-db.php /usr/local/bin/wait-for-db.php
53
53
54
- COPY admin /var/www/html/AVideo/admin
55
- COPY feed /var/www/html/AVideo/feed
56
- COPY install /var/www/html/AVideo/ install
57
- COPY locale /var/www/html/AVideo/locale
58
- COPY node_modules /var/www/html/AVideo/node_modules
59
- COPY objects /var/www/html/AVideo/objects
60
- COPY plugin /var/www/html/AVideo/plugin
61
- COPY storage /var/www/html/AVideo/storage
62
- COPY updatedb /var/www/html/AVideo/updatedb
63
- COPY vendor /var/www/html/AVideo/vendor
64
- COPY view /var/www/html/AVideo/view
65
- COPY _config.yml /var/www/html/AVideo
66
- COPY .htaccess /var/www/html/AVideo
67
- COPY CNAME /var/www/html/AVideo
68
- COPY LICENSE /var/www/ html/AVideo
69
- COPY README.md /var/www/html/AVideo
70
- COPY web.config /var/www/html/AVideo
71
- COPY index.php /var/www/html/AVideo
72
- COPY git.json.php /var/www/html/AVideo
73
- COPY sw.js /var/www/html/AVideo/
54
+ # Install nginx
55
+ RUN apt-get install build-essential libssl-dev libpcre3 libpcre3-dev wget -y \
56
+ && apt-get install --reinstall zlib1g zlib1g-dev -y \
57
+ && mkdir /var/www/tmp && chmod -R 777 /var/www/tmp \
58
+ && mkdir /HLS && mkdir /HLS/live && chmod -R 777 /HLS
59
+
60
+ RUN mkdir ~/build \
61
+ && cd ~/build \
62
+ && git clone https://github.com/arut/nginx-rtmp-module.git \
63
+ && git clone https://github.com/nginx/nginx.git \
64
+ && cd nginx \
65
+ && ./auto/configure --with-http_ssl_module --with-http_stub_status_module --add-module=../nginx-rtmp-module --with-cc-opt= "-Wimplicit-fallthrough=0" \
66
+ && make \
67
+ && make install\
68
+ && cd /usr/local/nginx/ html && wget https://youphp.tube/docs/stat.xsl
69
+
70
+ COPY deploy/nginx/nginx.conf /usr/local/nginx/conf/nginx.conf
71
+
72
+ COPY deploy/crontab /etc/cron.d/crontab
73
+ RUN chmod 0644 /etc/cron.d/crontab
74
74
75
75
# Configure AVideo
76
- RUN chmod 755 /usr/local/bin/docker-entrypoint && \
76
+ RUN dos2unix /usr/local/bin/docker-entrypoint && \
77
+ chmod 755 /usr/local/bin/docker-entrypoint && \
78
+ chmod +x /usr/local/bin/docker-entrypoint && \
77
79
pip3 install youtube-dl && \
78
- cd /var/www/html/AVideo && \
79
- git config --global advice.detachedHead false && \
80
- git clone https://github.com/WWBN/AVideo-Encoder.git Encoder && \
81
- chown -R www-data:www-data /var/www/html/AVideo && \
82
- cd /var/www/html/AVideo/plugin/User_Location/install && \
83
- unzip install.zip && \
84
80
sed -i 's/^post_max_size.*$/post_max_size = 10G/' /etc/php/8.1/apache2/php.ini && \
85
81
sed -i 's/^upload_max_filesize.*$/upload_max_filesize = 10G/' /etc/php/8.1/apache2/php.ini && \
82
+ sed -i 's/^max_execution_time.*$/max_execution_time = 7200/' /etc/php/8.1/apache2/php.ini && \
83
+ sed -i 's/^memory_limit.*$/memory_limit = 512M/' /etc/php/8.1/apache2/php.ini && \
86
84
a2enmod rewrite expires headers ssl xsendfile
87
85
86
+ # Add Apache configuration
87
+ RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
88
+
88
89
VOLUME /var/www/tmp
89
90
RUN mkdir -p /var/www/tmp && \
90
91
chown www-data:www-data /var/www/tmp && \
91
92
chmod 777 /var/www/tmp
92
93
93
- VOLUME /var/www/html/AVideo/videos
94
- RUN mkdir -p /var/www/html/AVideo/videos && \
95
- chown www-data:www-data /var/www/html/AVideo/videos && \
96
- chmod 777 /var/www/html/AVideo/videos
97
-
98
94
WORKDIR /var/www/html/AVideo/
99
95
96
+ EXPOSE $SOCKET_PORT
97
+ EXPOSE $HTTP_PORT
100
98
EXPOSE $HTTPS_PORT
99
+ EXPOSE $NGINX_RTMP_PORT
100
+ EXPOSE $NGINX_HTTPS_PORT
101
101
102
102
ENTRYPOINT ["/usr/local/bin/docker-entrypoint" ]
103
103
CMD ["apache2-foreground" ]
0 commit comments