*.xml
.idea
.phpdoc
+.vscode
\ No newline at end of file
DESTDIR="./dist"
PKG_VERSION := $( $(GREP) -Po '(?<="version": ")[^"]*' )
TMPDIR := $(shell mktemp -d)
+DOCKER_IMAGE = "$(shell basename $(CURDIR) | tr [:upper:] [:lower:])"
+DOCKER_TAG="$(DOCKER_TAG)"
+CONTAINER_NAME="$(CONTAINER_NAME)"
# default modules
MODULES="php"
npm_dependencies:
$(NPM) install
+
+build-image:
+ docker build -f docker/Dockerfile --build-arg VERSION=$(UGUU_RELEASE_VER) --no-cache -t $(DOCKER_IMAGE):$(DOCKER_TAG) .
+
+run-container:
+ docker run --name $(CONTAINER_NAME) -d -p 8080:80 --env-file docker/.env $(DOCKER_IMAGE):$(DOCKER_TAG)
+
+purge-container:
+ if docker images | grep $(DOCKER_IMAGE); then \
+ docker rm -f $(CONTAINER_NAME) && docker rmi $(DOCKER_IMAGE):$(DOCKER_TAG) || true;\
+ fi;
+
builddirs:
mkdir -p $(CURDIR)/build $(CURDIR)/build/img
ifneq (,$(findstring php,$(MODULES)))
--- /dev/null
+GEN_ROBOTS_TXT=false
+GEN_SITE_MAP=false
+MAX_UPLOAD_SIZE=128
+PROD=false
+SITE_NAME=DEVOPS
+SITE_URL=https://yoursite.com
+ABUSE_CONTACT=abuse@example.com
+INFO_CONTACT=info@example.com
+SERVER_CN_LOC=Sweden
+SITE_META_INFO=SITENAME is a temporary file hosting service, upload files up to 128MiB for 24 hours.
+PAYPAL_URL=
+BTC_ADDR=
+FLATTR_URL=
+DB_PATH=/var/www/db/uguu.sq3
+FILES_ROOT=/var/www/files/
+LOG_IP=false
+DB_USER=NULL
+DB_PASS=NULL
+ANTI_DUPE=false
+FILES_RETRIES=15
+SSL=true
+NAME_LENGTH=8
+URL=
\ No newline at end of file
--- /dev/null
+FROM ubuntu:latest
+
+ARG VERSION
+
+RUN apt-get update && \
+ apt install -y software-properties-common && \
+ add-apt-repository ppa:ondrej/php && \
+ apt-get install -y build-essential nginx-full php8.0-fpm php8.0 sqlite3 php8.0-sqlite3 nodejs certbot git npm cron gettext-base && \
+ apt clean
+
+WORKDIR /var/www/
+
+COPY docker/docker-entrypoint.sh .
+
+ADD https://github.com/nokonoko/Uguu/archive/refs/tags/v${VERSION}.tar.gz v${VERSION}.tar.gz
+
+RUN tar xvf v${VERSION}.tar.gz && \
+ mv Uguu-${VERSION}/ uguu
+
+RUN mkdir /var/www/uguu/dist && \
+ mkdir /var/www/db && \
+ mkdir /var/www/files
+
+RUN sqlite3 /var/www/db/uguu.sq3 -init /var/www/uguu/sqlite_schema.sql && \
+ chown -R www-data:www-data /var/www/db /var/www/files && \
+ chmod -R 775 /var/www/
+
+RUN chmod a+x /var/www/uguu/checkdb.sh && \
+ chmod a+x /var/www/uguu/checkfiles.sh && \
+ sed -i 's#/path/to/files/#/var/www/uguu/files/#g' /var/www/uguu/checkfiles.sh && \
+ sed -i 's#/path/to/db/uguu.sq3#/var/www/db/uguu.sq3#g' /var/www/uguu/checkdb.sh
+
+RUN echo "0,30 * * * * bash /var/www/uguu/checkfiles.sh" >> /var/spool/cron/crontabs/root && \
+ echo "0,30 * * * * bash /var/www/uguu/checkdb.sh" >> /var/spool/cron/crontabs/root
+
+COPY docker/uguu.conf /etc/nginx/conf.d/
+
+COPY dist.json /var/www/uguu/_dist.json
+
+EXPOSE 80
+
+ENTRYPOINT [ "bash", "/var/www/docker-entrypoint.sh" ]
--- /dev/null
+{
+ "init": {
+ "allowErrors": false
+ },
+ "dest": "dist",
+ "pkgVersion": "1.5.2",
+ "banners": [
+ "banners/malware_scans.swig",
+ "banners/donations.swig"
+ ],
+ "src": [
+ "templates/index.swig",
+ "templates/faq.swig",
+ "templates/tools.swig"
+ ],
+
+ "generateRobotstxt": "${GEN_ROBOTS_TXT}",
+ "generateSitemap": "${GEN_SITE_MAP}",
+ "max_upload_size": "${MAX_UPLOAD_SIZE}",
+ "production": "${PROD}",
+ "siteName": "${SITE_NAME}",
+ "siteUrl": "${SITE_URL}",
+ "abuseContact": "${ABUSE_CONTACT}",
+ "infoContact": "${INFO_CONTACT}",
+ "ServerCountryLocation": "${SERVER_CN_LOC}",
+ "SiteMetaInfo": "${SITE_META_INFO}",
+ "ToolsDesc": "The following tools might need editing to work on this clone of Uguu, usually editing the URL works.",
+ "paypalUrl": "${PAYPAL_URL}",
+ "bitcoinAddress": "${BTC_ADDR}",
+ "flattrUrl": "${FLATTR_URL}",
+ "DB_MODE": "sqlite",
+ "DB_PATH": "${DB_PATH}",
+ "DB_USER": "${DB_USER}",
+ "DB_PASS": "${DB_PASS}",
+ "LOG_IP": "${LOG_IP}",
+ "ANTI_DUPE": "${ANTI_DUPE}",
+ "BLACKLIST_DB": true,
+ "FILTER_MODE": true,
+ "FILES_ROOT": "${FILES_ROOT}",
+ "FILES_RETRIES": "${FILES_RETRIES}",
+ "SSL": "${SSL}",
+ "URL": "${URL}",
+ "NAME_LENGTH": "${NAME_LENGTH}",
+ "ID_CHARSET": "abcdefghijklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ",
+ "BLOCKED_EXTENSIONS": [
+ "exe",
+ "scr",
+ "com",
+ "vbs",
+ "bat",
+ "cmd",
+ "htm",
+ "html",
+ "jar",
+ "msi",
+ "apk",
+ "phtml",
+ "svg"
+ ],
+ "BLOCKED_MIME": [
+ "application/msword",
+ "text/html",
+ "application/x-dosexec",
+ "application/java",
+ "application/java-archive",
+ "application/x-executable",
+ "application/x-mach-binary",
+ "image/svg+xml"
+ ]
+}
--- /dev/null
+#!/bin/bash
+envsubst < /var/www/uguu/_dist.json > /var/www/uguu/dist.json
+cd /var/www/uguu/
+make
+make install
+service php8.0-fpm start
+service cron start
+nginx -g 'daemon off;'
--- /dev/null
+server{
+
+ listen 80;
+ server_name localhost;
+ # ssl on;
+ # ssl_certificate /path/to/fullchain.pem;
+ # ssl_certificate_key /path/to/privkey.pem;
+ # ssl_protocols TLSv1.2 TLSv1.3;
+ # ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
+ # ssl_ecdh_curve secp384r1;
+
+ root /var/www/uguu/dist/;
+ autoindex on;
+ access_log on;
+ index index.html index.php;
+
+ location ~* \.(css|js|jpg|jpeg|gif|png|ico|xml|eot|woff|woff2|ttf|svg|otf|x-icon|avif|webp|apng)$ {
+ expires 30d;
+ }
+
+ location ^~ /files/ {
+ alias /var/www/files/;
+ index index.html index.htm;
+ autoindex off;
+ include mime.types;
+ types {
+ text/plain php;
+ }
+ }
+ gzip on;
+ gzip_min_length 1000;
+ gzip_comp_level 6;
+ gzip_proxied any;
+ gzip_types text/css text/js text/javascript application/javascript application/x-javascript;
+
+ location ~* \.php$ {
+ fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
+ fastcgi_intercept_errors on;
+ fastcgi_index index.php;
+ fastcgi_split_path_info ^(.+\.php)(.*)$;
+ include fastcgi_params;
+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+ }
+}
\ No newline at end of file