diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..dcd9b0d9 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,49 @@ +/node_modules +/public/hot +/public/storage +/storage/*.key +/vendor +.env +.phpunit.result.cache +Homestead.json +Homestead.yaml +npm-debug.log +yarn-error.log +/.idea +*.tmp +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.idea/**/contentModel.xml +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml +.idea/**/gradle.xml +.idea/**/libraries +cmake-build-*/ +.idea/**/mongoSettings.xml +*.iws +out/ +.idea_modules/ +atlassian-ide-plugin.xml +.idea/replstate.xml +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +.idea/httpRequests +.idea/caches/build_file_checksums.ser +**___jb_tmp___ +.idea/sonarlint +.phpstorm.meta.php +_ide_helper.php +_ide_helper_models.php + +.env-example +data/ diff --git a/.env-docker b/.env-docker new file mode 100644 index 00000000..febbec81 --- /dev/null +++ b/.env-docker @@ -0,0 +1,41 @@ +APP_NAME=UrlHum +APP_ENV=production +APP_KEY= +APP_DEBUG=false +APP_URL=https://urlhum.com +APP_LOCALE=en + +LOG_CHANNEL=stack + +DB_CONNECTION=mysql +DB_HOST=mysql +DB_PORT=3306 +DB_DATABASE=urlhum +DB_USERNAME=url +DB_PASSWORD=hum + +BROADCAST_DRIVER=log +CACHE_DRIVER=file +QUEUE_CONNECTION=sync +SESSION_DRIVER=file +SESSION_LIFETIME=120 + +REDIS_HOST=redis +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_DRIVER=smtp +MAIL_HOST= +MAIL_PORT=2525 +MAIL_USERNAME= +MAIL_PASSWORD= +MAIL_FROM_ADDRESS= +MAIL_FROM_NAME= + +PUSHER_APP_ID= +PUSHER_APP_KEY= +PUSHER_APP_SECRET= +PUSHER_APP_CLUSTER=mt1 + +MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" +MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" diff --git a/.gitignore b/.gitignore index 2ebe54f8..dcd9b0d9 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,4 @@ _ide_helper.php _ide_helper_models.php .env-example +data/ diff --git a/Caddyfile b/Caddyfile new file mode 100644 index 00000000..04f7d345 --- /dev/null +++ b/Caddyfile @@ -0,0 +1,7 @@ +localhost:443 { + root urlhum + tls self_signed + proxy / http://urlhum:8000 { + transparent + } +} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..50b17ebe --- /dev/null +++ b/Dockerfile @@ -0,0 +1,8 @@ +FROM php:alpine + +WORKDIR /app +RUN apk add --no-cache composer && docker-php-ext-install mysqli pdo pdo_mysql +COPY . ./ +RUN composer install +RUN echo -e '#!/bin/sh\nuntil nc -z mysql 3306; do sleep 1; done\nphp artisan migrate -n --force\nif [ ! -f "/seed-done" ]; then php artisan db:seed -n --force && php artisan settings:set && touch /seed-done; fi\nphp artisan serve --host=0.0.0.0 --port=8000' > entrypoint.sh && chmod +x entrypoint.sh +CMD [ "./entrypoint.sh" ] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..6838d004 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,47 @@ +version: '3' + +networks: + urlhum: + driver: bridge + +services: + urlhum: + image: urlhum + build: + context: . + networks: + - urlhum + volumes: + - ./.env-docker:/app/.env + depends_on: + - mysql + - redis + environment: + - APP_KEY=${URLHUM_APP_KEY} + + mysql: + image: mariadb + networks: + - urlhum + volumes: + - ./data/database:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD=root + - MYSQL_DATABASE=urlhum + - MYSQL_USER=url + - MYSQL_PASSWORD=hum + + redis: + image: redis:alpine + networks: + - urlhum + + caddy: + image: abiosoft/caddy + ports: + - "22443:443" + - "2280:80" + networks: + - urlhum + volumes: + - ./Caddyfile:/etc/Caddyfile