Compare commits
5 Commits
ampache-mg
...
master
Author | SHA1 | Date | |
---|---|---|---|
5c3076ba6f | |||
50691ad48b | |||
04262b54e9 | |||
ad03b772e6 | |||
5859c4b949 |
37
.env
37
.env
@ -1,37 +0,0 @@
|
||||
# Rx3 Ampache Mageia-9 Docker Image
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Global Settings
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
IMG_ORG="rx3"
|
||||
IMG_REGISTRY="docker.xor.rx3:5000"
|
||||
IMG_URL_PREFIX="${IMG_REGISTRY}/${IMG_ORG}"
|
||||
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Image Settings
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
IMG_NAME="ampache-mga9"
|
||||
IMG_FULL_NAME="Rx3 Ampache Mageia-9 Docker Image"
|
||||
IMG_VERSION="1.2.1"
|
||||
IMG_URL="${IMG_URL_PREFIX}/${IMG_NAME}:${IMG_VERSION}"
|
||||
IMG_MAINTAINER='"Arnaud G. GIBERT" <arnaud@rx3.net>'
|
||||
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# User Settings
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
MARIADB_UID=983
|
||||
MARIADB_GID=981
|
||||
MARIADB_ROOT_HOST='%' # needs to be enclosed with quotes
|
||||
MARIADB_ROOT_PASSWORD="mysqladmin"
|
||||
MARIADB_DATABASE="ampache"
|
||||
MARIADB_USER="ampache"
|
||||
MARIADB_PASSWORD="ampacheadmin"
|
44
Dockerfile
44
Dockerfile
@ -3,7 +3,7 @@
|
||||
|
||||
ARG IMG_URL_PREFIX="rx3"
|
||||
|
||||
FROM ${IMG_URL_PREFIX}/php-apache-mga9:1.3.2
|
||||
FROM ${IMG_URL_PREFIX}/php-apache-mga9:1.3.3
|
||||
|
||||
ARG IMG_NAME
|
||||
ARG IMG_FULL_NAME
|
||||
@ -12,7 +12,7 @@ ARG IMG_MAINTAINER
|
||||
|
||||
ARG AMPACHE_VERSION=6.6.0
|
||||
|
||||
ENV DISABLE_INOTIFYWAIT_CLEAN 0
|
||||
ENV DISABLE_INOTIFYWAIT_CLEAN=0
|
||||
|
||||
LABEL org.rx3.${IMG_NAME}.name=${IMG_FULL_NAME}
|
||||
LABEL org.rx3.${IMG_NAME}.version=${IMG_VERSION}
|
||||
@ -24,11 +24,9 @@ LABEL maintainer=${IMG_MAINTAINER}
|
||||
#---------------------------------------------------------------------------------------------------
|
||||
ARG AMPACHE='#!/bin/bash \n\
|
||||
\n\
|
||||
cp -f /var/www/config/ampache.cfg.php.dist /var/www/config \n\
|
||||
cp -f /var/tmp/ampache.cfg.php.dist /var/www/config \n\
|
||||
\n\
|
||||
chown -R apache:apache /var/www/config /var/log/ampache \n\
|
||||
chgrp apache /usr/bin/pwauth \n\
|
||||
chmod u+s /usr/bin/pwauth'
|
||||
chown -R apache:apache /var/www/config /var/log/ampache'
|
||||
#---------------------------------------------------------------------------------------------------
|
||||
|
||||
#---------------------------------------------------------------------------------------------------
|
||||
@ -41,24 +39,22 @@ PATH=/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
|
||||
|
||||
|
||||
|
||||
RUN urpmi --force wget ffmpeg lib64opencl1 flac inotify-tools lame lib64avcodec59 lib64event7 lib64mp3lame-devel lib64theora-devel lib64vorbis-devel lib64vpx-devel php-iconv php-curl php-gd php-intl php-ldap php-sabre-xml php-zip supervisor vorbis-tools zip unzip pwauth \
|
||||
&& mkdir -p /var/log/ampache \
|
||||
&& wget -q -O /tmp/ampache.zip https://github.com/ampache/ampache/releases/download/${AMPACHE_VERSION}/ampache-${AMPACHE_VERSION}_all_php8.2.zip \
|
||||
&& unzip /tmp/ampache.zip -d /var/www \
|
||||
&& sed -i -e 's/$transcode_cfg != '"'"'never'"'"'/$transcode_cfg != '"'"'ever'"'"'/' /var/www/src/Module/Util/Waveform.php \
|
||||
&& sed -i -e 's/ || static::getUserRepository()->idByEmail($email) > 0//' /var/www/src/Repository/Model/User.php \
|
||||
&& cp -f /var/www/public/rest/.htaccess.dist /var/www/public/rest/.htaccess \
|
||||
&& cp -f /var/www/public/play/.htaccess.dist /var/www/public/play/.htaccess \
|
||||
&& cp -f /var/www/config/ampache.cfg.php.dist /var/tmp \
|
||||
&& rm -f /tmp/ampache.zip /var/www/public/.php*cs* /var/www/public/.sc /var/www/public/.scrutinizer.yml /var/www/public/.tgitconfig /var/www/public/.travis.yml /var/www/public/*.md \
|
||||
&& find /var/www -type d -name ".git*" -print0 | xargs -0 rm -rf {} \
|
||||
&& chown -R root:root /var/www \
|
||||
&& chmod -R 775 /var/www \
|
||||
&& echo -e "${AMPACHE}" | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/init.d/ampache \
|
||||
&& chmod a+x /etc/init.d/ampache \
|
||||
&& ln -s /etc/init.d/ampache /etc/rcD.d/S40ampache \
|
||||
&& sed -i -e "s/upload_max_filesize = 16M/upload_max_filesize = 32M/" /etc/php.d/01_fileuploads.ini \
|
||||
&& sed -i -e "s/post_max_size = 8M/post_max_size = 32M/" /etc/php.d/01_datahandling.ini
|
||||
RUN urpmi --force wget ffmpeg lib64opencl1 flac inotify-tools lame lib64avcodec59 lib64event7 lib64mp3lame-devel lib64theora-devel lib64vorbis-devel lib64vpx-devel php-iconv php-curl php-gd php-intl php-ldap php-sabre-xml php-zip vorbis-tools zip unzip \
|
||||
&& mkdir -p /var/log/ampache \
|
||||
&& wget -q -O /tmp/ampache.zip https://github.com/ampache/ampache/releases/download/${AMPACHE_VERSION}/ampache-${AMPACHE_VERSION}_all_php8.2.zip \
|
||||
&& unzip /tmp/ampache.zip -d /var/www \
|
||||
&& sed -i -e 's/$transcode_cfg != '"'"'never'"'"'/$transcode_cfg != '"'"'ever'"'"'/' /var/www/src/Module/Util/Waveform.php \
|
||||
&& sed -i -e 's/ || static::getUserRepository()->idByEmail($email) > 0//' /var/www/src/Repository/Model/User.php \
|
||||
&& cp -f /var/www/public/rest/.htaccess.dist /var/www/public/rest/.htaccess \
|
||||
&& cp -f /var/www/public/play/.htaccess.dist /var/www/public/play/.htaccess \
|
||||
&& cp -f /var/www/config/ampache.cfg.php.dist /var/tmp \
|
||||
&& rm -f /tmp/ampache.zip /var/www/public/.php*cs* /var/www/public/.sc /var/www/public/.scrutinizer.yml /var/www/public/.tgitconfig /var/www/public/.travis.yml /var/www/public/*.md \
|
||||
&& find /var/www -type d -name ".git*" -print0 | xargs -0 rm -rf {} \
|
||||
&& chown -R root:root /var/www \
|
||||
&& chmod -R 775 /var/www \
|
||||
&& echo -e "${AMPACHE}" | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/init.d/ampache \
|
||||
&& chmod a+x /etc/init.d/ampache \
|
||||
&& ln -s /etc/init.d/ampache /etc/rcD.d/S40ampache
|
||||
|
||||
|
||||
VOLUME ["/var/www/html/config"]
|
||||
|
@ -5,7 +5,7 @@ Welcome to Rx3/Ampache-Mga9 docker image!
|
||||
This is project aims to build a Ampache + Mageia 9 docker image.
|
||||
|
||||
Features:
|
||||
- Based on rx3/php-apache-mga9:1.3.2 & rx3/mariadb-mga9:1.0.1 images,
|
||||
- Based on rx3/php-apache-mga9:1.3.3 & rx3/mariadb-mga9:1.0.2 images,
|
||||
- Support mysql & external pwauth authentication.
|
||||
|
||||
|
||||
|
@ -1,3 +1,30 @@
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
Rx3/Ampache-Mga9 V 1.2.3 - A. GIBERT - 2024/10/xx
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Fix crontab: user ampache user instead of root and add it to git,
|
||||
- Fix database restart in compose file,
|
||||
- Add database healthcheck & webapp service depencies.
|
||||
|
||||
|
||||
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
Rx3/Ampache-Mga9 V 1.2.2 - A. GIBERT - 2024/10/06
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Now use rx3/php-apache-mga9:1.3.3 image:
|
||||
- PHP memory limit increased from 128M to 512M,
|
||||
- mpm support,
|
||||
- pwauth support,
|
||||
- Remove now unneeded pwauth install & PHP config.
|
||||
- Now use rx3/mariadb-mga9:1.0.2
|
||||
- Variabilization of external server ports in env & compose file,
|
||||
- Now use docker_tools for .env building,
|
||||
- local directory normalization,
|
||||
- fix ampache.cfg.php.dist initialization.
|
||||
|
||||
|
||||
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
Rx3/Ampache-Mga9 V 1.2.1 - A. GIBERT - 2024/08/28
|
||||
------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
100
compose.yaml
100
compose.yaml
@ -1,13 +1,15 @@
|
||||
# Rx3 Ampache Mageia-9 Docker Image
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
name: ${IMG_NAME}
|
||||
name: ${APPL_NAME}
|
||||
|
||||
services:
|
||||
database:
|
||||
container_name: ${IMG_NAME}-mysql
|
||||
container_name: ${DATABASE_CONT_NAME}
|
||||
|
||||
image: ${IMG_URL_PREFIX}/mariadb-mga9:1.0.1
|
||||
image: ${DATABASE_IMG}
|
||||
|
||||
restart: unless-stopped
|
||||
|
||||
environment:
|
||||
MARIADB_UID: ${MARIADB_UID}
|
||||
@ -18,87 +20,101 @@ services:
|
||||
MARIADB_USER: ${MARIADB_USER}
|
||||
MARIADB_PASSWORD: ${MARIADB_PASSWORD}
|
||||
|
||||
healthcheck:
|
||||
test: ["CMD", 'mysqladmin', 'ping', '-h', 'localhost', '-u', 'root', '-p${MARIADB_ROOT_PASSWORD}' ]
|
||||
interval: 10s
|
||||
timeout: 3s
|
||||
retries: 3
|
||||
|
||||
volumes:
|
||||
- ./mysql:/var/lib/mysql
|
||||
- ./var/lib/mysql:/var/lib/mysql
|
||||
|
||||
networks:
|
||||
- ampache
|
||||
- appl
|
||||
|
||||
ports:
|
||||
- "127.0.0.1:9006:9001"
|
||||
- "127.0.0.1:8006:3306"
|
||||
- "127.0.0.1:${DATABASE_SV_PORT}:9001"
|
||||
- "127.0.0.1:${DATABASE_PORT}:3306"
|
||||
|
||||
webapp-internal:
|
||||
container_name: ${IMG_NAME}-internal
|
||||
container_name: ${WEBAPP_INT_CONT_NAME}
|
||||
|
||||
image: ${IMG_URL}
|
||||
image: ${WEBAPP_IMG}
|
||||
|
||||
build:
|
||||
context: .
|
||||
args:
|
||||
- IMG_NAME=${IMG_NAME}
|
||||
- IMG_FULL_NAME=${IMG_FULL_NAME}
|
||||
- IMG_VERSION=${IMG_VERSION}
|
||||
- IMG_MAINTAINER=${IMG_MAINTAINER}
|
||||
- IMG_URL_PREFIX=${IMG_URL_PREFIX}
|
||||
- IMG_NAME=${APPL_NAME}
|
||||
- IMG_FULL_NAME=${APPL_FULL_NAME}
|
||||
- IMG_VERSION=${APPL_VERSION}
|
||||
- IMG_MAINTAINER=${APPL_MAINTAINER}
|
||||
- IMG_URL_PREFIX=${APPL_URL_PREFIX}
|
||||
|
||||
restart: unless-stopped
|
||||
|
||||
depends_on:
|
||||
database:
|
||||
condition: service_healthy
|
||||
|
||||
environment:
|
||||
- APACHE_UID=980
|
||||
- APACHE_GID=977
|
||||
- APACHE_DOC_ROOT=/var/www/public
|
||||
- DISABLE_INOTIFYWAIT_CLEAN=1
|
||||
APACHE_UID: ${APACHE_UID}
|
||||
APACHE_GID: ${APACHE_GID}
|
||||
APACHE_DOC_ROOT: ${APACHE_DOC_ROOT}
|
||||
|
||||
volumes:
|
||||
- ./ampache-internal/config:/var/www/config
|
||||
- ./ampache-internal/log:/var/log/ampache
|
||||
- ./etc/ampache-internal:/var/www/config
|
||||
- ./var/log/ampache-internal:/var/log/ampache
|
||||
- ./etc/cron.d/ampache:/etc/cron.d/ampache:ro
|
||||
- /etc/passwd:/etc/passwd:ro
|
||||
- /etc/group:/etc/group:ro
|
||||
- /etc/shadow:/etc/shadow:ro
|
||||
- ./media/music:/media/music
|
||||
- ./media/video:/media/video
|
||||
- /etc/shadow:/etc/shadow:ro
|
||||
- ${MUSIC_REPO}:/media/music
|
||||
- ${VIDEO_REPO}:/media/video
|
||||
|
||||
networks:
|
||||
- ampache
|
||||
- appl
|
||||
|
||||
ports:
|
||||
- "127.0.0.1:9085:9001"
|
||||
- "127.0.0.1:8085:80"
|
||||
- "127.0.0.1:${WEBAPP_INT_SV_PORT}:9001"
|
||||
- "127.0.0.1:${WEBAPP_INT_PORT}:80"
|
||||
|
||||
webapp-external:
|
||||
container_name: ${IMG_NAME}-external
|
||||
container_name: ${WEBAPP_EXT_CONT_NAME}
|
||||
|
||||
image: ${IMG_URL}
|
||||
image: ${WEBAPP_IMG}
|
||||
|
||||
restart: unless-stopped
|
||||
|
||||
depends_on:
|
||||
database:
|
||||
condition: service_healthy
|
||||
|
||||
environment:
|
||||
- APACHE_UID=980
|
||||
- APACHE_GID=977
|
||||
- APACHE_DOC_ROOT=/var/www/public
|
||||
- DISABLE_INOTIFYWAIT_CLEAN=1
|
||||
APACHE_UID: ${APACHE_UID}
|
||||
APACHE_GID: ${APACHE_GID}
|
||||
APACHE_DOC_ROOT: ${APACHE_DOC_ROOT}
|
||||
|
||||
volumes:
|
||||
- ./ampache-external/config:/var/www/config
|
||||
- ./ampache-external/log:/var/log/ampache
|
||||
- ./etc/ampache-external:/var/www/config
|
||||
- ./var/log/ampache-external:/var/log/ampache
|
||||
- /etc/passwd:/etc/passwd:ro
|
||||
- /etc/group:/etc/group:ro
|
||||
- ./media/music:/media/music
|
||||
- ./media/video:/media/video
|
||||
- ${MUSIC_REPO}:/media/music
|
||||
- ${VIDEO_REPO}:/media/video
|
||||
|
||||
networks:
|
||||
- ampache
|
||||
- appl
|
||||
|
||||
ports:
|
||||
- "127.0.0.1:9086:9001"
|
||||
- "127.0.0.1:8086:80"
|
||||
- "127.0.0.1:${WEBAPP_EXT_SV_PORT}:9001"
|
||||
- "127.0.0.1:${WEBAPP_EXT_PORT}:80"
|
||||
|
||||
networks:
|
||||
ampache:
|
||||
name: ampache
|
||||
appl:
|
||||
name: ${NETWORK_NAME}
|
||||
driver: bridge
|
||||
driver_opts:
|
||||
com.docker.network.bridge.name: br-ampache
|
||||
com.docker.network.bridge.name: ${NETWORK_IF_NAME}
|
||||
ipam:
|
||||
config:
|
||||
- subnet: 10.2.33.0/24
|
||||
|
97
env.dist
Normal file
97
env.dist
Normal file
@ -0,0 +1,97 @@
|
||||
# Rx3 Ampache Mageia-9 Docker Image
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Global Settings
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
APPL_ORG="rx3"
|
||||
APPL_REGISTRY="docker.xor.rx3:5000"
|
||||
APPL_URL_PREFIX="${APPL_REGISTRY}/${APPL_ORG}"
|
||||
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Image Settings
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
APPL_NAME="ampache-mga9"
|
||||
APPL_FULL_NAME="Rx3 Ampache Mageia-9 Docker Image"
|
||||
APPL_SHORT_NAME="ampache"
|
||||
APPL_VERSION="1.2.2"
|
||||
APPL_URL="${APPL_URL_PREFIX}/${APPL_NAME}:${APPL_VERSION}"
|
||||
APPL_MAINTAINER='"Arnaud G. GIBERT" <arnaud@rx3.net>'
|
||||
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# User Settings
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#APPL_ENV="prd"
|
||||
#APPL_ENV="tst"
|
||||
#APPL_ENV="int"
|
||||
APPL_ENV="dvp"
|
||||
|
||||
MUSIC_REPO="./opt/music"
|
||||
VIDEO_REPO="./opt/video"
|
||||
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Common
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
if [[ "${APPL_ENV}" != "prd" ]]
|
||||
then
|
||||
APPL_SUFFIX="-${APPL_ENV}"
|
||||
ENV_PORT_OFFSET=100
|
||||
else
|
||||
APPL_SUFFIX=""
|
||||
ENV_PORT_OFFSET=0
|
||||
fi
|
||||
|
||||
CONT_NAME_PREFIX=${APPL_NAME/-mga9}${APPL_SUFFIX}
|
||||
|
||||
SV_PORT_OFFSET=1000
|
||||
NETWORK_NAME=${CONT_NAME_PREFIX}
|
||||
NETWORK_IF_NAME=br-${APPL_SHORT_NAME}-${APPL_ENV}
|
||||
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Database
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
DATABASE_IMG=${APPL_URL_PREFIX}/mariadb-mga9:1.0.2
|
||||
DATABASE_CONT_NAME="${CONT_NAME_PREFIX}-database"
|
||||
DATABASE_PORT=$(( 8006 + ${ENV_PORT_OFFSET}))
|
||||
DATABASE_SV_PORT=$(( ${DATABASE_PORT} + ${SV_PORT_OFFSET}))
|
||||
|
||||
MARIADB_UID=983
|
||||
MARIADB_GID=981
|
||||
MARIADB_ROOT_HOST='%' # needs to be enclosed with quotes
|
||||
MARIADB_ROOT_PASSWORD="mysqladmin"
|
||||
MARIADB_DATABASE="ampache"
|
||||
MARIADB_USER="ampache"
|
||||
MARIADB_PASSWORD="ampacheadmin"
|
||||
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# WebApp
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
WEBAPP_IMG=${APPL_URL}
|
||||
|
||||
WEBAPP_INT_CONT_NAME="${CONT_NAME_PREFIX}-webapp-internal"
|
||||
WEBAPP_INT_PORT=$(( 8085 + ${ENV_PORT_OFFSET}))
|
||||
WEBAPP_INT_SV_PORT=$(( ${WEBAPP_INT_PORT} + ${SV_PORT_OFFSET}))
|
||||
|
||||
WEBAPP_EXT_CONT_NAME="${CONT_NAME_PREFIX}-webapp-external"
|
||||
WEBAPP_EXT_PORT=$(( ${WEBAPP_INT_PORT} + 1))
|
||||
WEBAPP_EXT_SV_PORT=$(( ${WEBAPP_EXT_PORT} + ${SV_PORT_OFFSET}))
|
||||
|
||||
APACHE_UID=980
|
||||
APACHE_GID=977
|
||||
APACHE_DOC_ROOT=/var/www/public
|
4
etc/ampache-external/.gitignore
vendored
Normal file
4
etc/ampache-external/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
4
etc/ampache-internal/.gitignore
vendored
Normal file
4
etc/ampache-internal/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
5
etc/cron.d/ampache
Normal file
5
etc/cron.d/ampache
Normal file
@ -0,0 +1,5 @@
|
||||
# /etc/cron.d/ampache: crontab fragment for ampache server
|
||||
|
||||
PATH=/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
|
||||
|
||||
15 3 * * * apache cd /var/www; php bin/cli run:updateCatalog -v -c -e -a -g >/var/log/ampache/catalog_update.log 2>&1
|
4
opt/music/.gitignore
vendored
Normal file
4
opt/music/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
4
opt/video/.gitignore
vendored
Normal file
4
opt/video/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
4
var/lib/.gitignore
vendored
Normal file
4
var/lib/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
4
var/log/ampache-external/.gitignore
vendored
Normal file
4
var/log/ampache-external/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
4
var/log/ampache-internal/.gitignore
vendored
Normal file
4
var/log/ampache-internal/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
Loading…
Reference in New Issue
Block a user