diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..77ce8b822 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule "app/console"] + path = app/console + url = https://github.com/appwrite/console.git + branch = feat-layout-endpoints \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 83e7980dc..922d4917c 100755 --- a/Dockerfile +++ b/Dockerfile @@ -9,18 +9,15 @@ COPY composer.lock /usr/local/src/ COPY composer.json /usr/local/src/ RUN composer install --ignore-platform-reqs --optimize-autoloader \ - --no-plugins --no-scripts --prefer-dist \ - `if [ "$TESTING" != "true" ]; then echo "--no-dev"; fi` + --no-plugins --no-scripts --prefer-dist \ + `if [ "$TESTING" != "true" ]; then echo "--no-dev"; fi` FROM node:16.14.2-alpine3.15 as node -WORKDIR /usr/local/src/ -COPY package-lock.json /usr/local/src/ -COPY package.json /usr/local/src/ -COPY gulpfile.js /usr/local/src/ -COPY public /usr/local/src/public -COPY console /usr/local/src/console +COPY app/console /usr/local/src/console + +WORKDIR /usr/local/src/console RUN npm ci RUN npm run build @@ -31,12 +28,12 @@ ARG DEBUG=false ENV DEBUG=$DEBUG ENV PHP_REDIS_VERSION=5.3.7 \ - PHP_MONGODB_VERSION=1.13.0 \ - PHP_SWOOLE_VERSION=v4.8.10 \ - PHP_IMAGICK_VERSION=3.7.0 \ - PHP_YAML_VERSION=2.2.2 \ - PHP_MAXMINDDB_VERSION=v1.11.0 \ - PHP_ZSTD_VERSION="4504e4186e79b197cfcb75d4d09aa47ef7d92fe9 " + PHP_MONGODB_VERSION=1.13.0 \ + PHP_SWOOLE_VERSION=v4.8.10 \ + PHP_IMAGICK_VERSION=3.7.0 \ + PHP_YAML_VERSION=2.2.2 \ + PHP_MAXMINDDB_VERSION=v1.11.0 \ + PHP_ZSTD_VERSION="4504e4186e79b197cfcb75d4d09aa47ef7d92fe9 " RUN \ apk add --no-cache --virtual .deps \ @@ -78,14 +75,14 @@ RUN \ ## Swoole Debugger setup RUN if [ "$DEBUG" == "true" ]; then \ - cd /tmp && \ - apk add boost-dev && \ - git clone --depth 1 https://github.com/swoole/yasd && \ - cd yasd && \ - phpize && \ - ./configure && \ - make && make install && \ - cd ..;\ + cd /tmp && \ + apk add boost-dev && \ + git clone --depth 1 https://github.com/swoole/yasd && \ + cd yasd && \ + phpize && \ + ./configure && \ + make && make install && \ + cd ..;\ fi ## Imagick Extension @@ -175,88 +172,88 @@ ENV DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker} ENV DOCKER_COMPOSE_VERSION=v2.5.0 ENV _APP_SERVER=swoole \ - _APP_ENV=production \ - _APP_LOCALE=en \ - _APP_WORKER_PER_CORE= \ - _APP_DOMAIN=localhost \ - _APP_DOMAIN_TARGET=localhost \ - _APP_HOME=https://appwrite.io \ - _APP_EDITION=community \ - _APP_CONSOLE_WHITELIST_ROOT=enabled \ - _APP_CONSOLE_WHITELIST_EMAILS= \ - _APP_CONSOLE_WHITELIST_IPS= \ - _APP_SYSTEM_EMAIL_NAME= \ - _APP_SYSTEM_EMAIL_ADDRESS= \ - _APP_SYSTEM_RESPONSE_FORMAT= \ - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS= \ - _APP_OPTIONS_ABUSE=enabled \ - _APP_OPTIONS_FORCE_HTTPS=disabled \ - _APP_OPENSSL_KEY_V1=your-secret-key \ - _APP_STORAGE_LIMIT=10000000 \ - _APP_STORAGE_ANTIVIRUS=enabled \ - _APP_STORAGE_ANTIVIRUS_HOST=clamav \ - _APP_STORAGE_ANTIVIRUS_PORT=3310 \ - _APP_STORAGE_DEVICE=Local \ - _APP_STORAGE_S3_ACCESS_KEY= \ - _APP_STORAGE_S3_SECRET= \ - _APP_STORAGE_S3_REGION= \ - _APP_STORAGE_S3_BUCKET= \ - _APP_STORAGE_DO_SPACES_ACCESS_KEY= \ - _APP_STORAGE_DO_SPACES_SECRET= \ - _APP_STORAGE_DO_SPACES_REGION= \ - _APP_STORAGE_DO_SPACES_BUCKET= \ - _APP_STORAGE_BACKBLAZE_ACCESS_KEY= \ - _APP_STORAGE_BACKBLAZE_SECRET= \ - _APP_STORAGE_BACKBLAZE_REGION= \ - _APP_STORAGE_BACKBLAZE_BUCKET= \ - _APP_STORAGE_LINODE_ACCESS_KEY= \ - _APP_STORAGE_LINODE_SECRET= \ - _APP_STORAGE_LINODE_REGION= \ - _APP_STORAGE_LINODE_BUCKET= \ - _APP_STORAGE_WASABI_ACCESS_KEY= \ - _APP_STORAGE_WASABI_SECRET= \ - _APP_STORAGE_WASABI_REGION= \ - _APP_STORAGE_WASABI_BUCKET= \ - _APP_REDIS_HOST=redis \ - _APP_REDIS_PORT=6379 \ - _APP_DB_HOST=mariadb \ - _APP_DB_PORT=3306 \ - _APP_DB_USER=root \ - _APP_DB_PASS=password \ - _APP_DB_SCHEMA=appwrite \ - _APP_INFLUXDB_HOST=influxdb \ - _APP_INFLUXDB_PORT=8086 \ - _APP_STATSD_HOST=telegraf \ - _APP_STATSD_PORT=8125 \ - _APP_SMTP_HOST= \ - _APP_SMTP_PORT= \ - _APP_SMTP_SECURE= \ - _APP_SMTP_USERNAME= \ - _APP_SMTP_PASSWORD= \ - _APP_SMS_PROVIDER= \ - _APP_SMS_FROM= \ - _APP_FUNCTIONS_SIZE_LIMIT=30000000 \ - _APP_FUNCTIONS_TIMEOUT=900 \ - _APP_FUNCTIONS_CONTAINERS=10 \ - _APP_FUNCTIONS_CPUS=1 \ - _APP_FUNCTIONS_MEMORY=128 \ - _APP_FUNCTIONS_MEMORY_SWAP=128 \ - _APP_EXECUTOR_SECRET=a-random-secret \ - _APP_EXECUTOR_HOST=http://appwrite-executor/v1 \ - _APP_EXECUTOR_RUNTIME_NETWORK=appwrite_runtimes \ - _APP_SETUP=self-hosted \ - _APP_VERSION=$VERSION \ - _APP_USAGE_STATS=enabled \ - _APP_USAGE_TIMESERIES_INTERVAL=30 \ - _APP_USAGE_DATABASE_INTERVAL=900 \ - # 14 Days = 1209600 s - _APP_MAINTENANCE_RETENTION_EXECUTION=1209600 \ - _APP_MAINTENANCE_RETENTION_AUDIT=1209600 \ - # 1 Day = 86400 s - _APP_MAINTENANCE_RETENTION_ABUSE=86400 \ - _APP_MAINTENANCE_INTERVAL=86400 \ - _APP_LOGGING_PROVIDER= \ - _APP_LOGGING_CONFIG= + _APP_ENV=production \ + _APP_LOCALE=en \ + _APP_WORKER_PER_CORE= \ + _APP_DOMAIN=localhost \ + _APP_DOMAIN_TARGET=localhost \ + _APP_HOME=https://appwrite.io \ + _APP_EDITION=community \ + _APP_CONSOLE_WHITELIST_ROOT=enabled \ + _APP_CONSOLE_WHITELIST_EMAILS= \ + _APP_CONSOLE_WHITELIST_IPS= \ + _APP_SYSTEM_EMAIL_NAME= \ + _APP_SYSTEM_EMAIL_ADDRESS= \ + _APP_SYSTEM_RESPONSE_FORMAT= \ + _APP_SYSTEM_SECURITY_EMAIL_ADDRESS= \ + _APP_OPTIONS_ABUSE=enabled \ + _APP_OPTIONS_FORCE_HTTPS=disabled \ + _APP_OPENSSL_KEY_V1=your-secret-key \ + _APP_STORAGE_LIMIT=10000000 \ + _APP_STORAGE_ANTIVIRUS=enabled \ + _APP_STORAGE_ANTIVIRUS_HOST=clamav \ + _APP_STORAGE_ANTIVIRUS_PORT=3310 \ + _APP_STORAGE_DEVICE=Local \ + _APP_STORAGE_S3_ACCESS_KEY= \ + _APP_STORAGE_S3_SECRET= \ + _APP_STORAGE_S3_REGION= \ + _APP_STORAGE_S3_BUCKET= \ + _APP_STORAGE_DO_SPACES_ACCESS_KEY= \ + _APP_STORAGE_DO_SPACES_SECRET= \ + _APP_STORAGE_DO_SPACES_REGION= \ + _APP_STORAGE_DO_SPACES_BUCKET= \ + _APP_STORAGE_BACKBLAZE_ACCESS_KEY= \ + _APP_STORAGE_BACKBLAZE_SECRET= \ + _APP_STORAGE_BACKBLAZE_REGION= \ + _APP_STORAGE_BACKBLAZE_BUCKET= \ + _APP_STORAGE_LINODE_ACCESS_KEY= \ + _APP_STORAGE_LINODE_SECRET= \ + _APP_STORAGE_LINODE_REGION= \ + _APP_STORAGE_LINODE_BUCKET= \ + _APP_STORAGE_WASABI_ACCESS_KEY= \ + _APP_STORAGE_WASABI_SECRET= \ + _APP_STORAGE_WASABI_REGION= \ + _APP_STORAGE_WASABI_BUCKET= \ + _APP_REDIS_HOST=redis \ + _APP_REDIS_PORT=6379 \ + _APP_DB_HOST=mariadb \ + _APP_DB_PORT=3306 \ + _APP_DB_USER=root \ + _APP_DB_PASS=password \ + _APP_DB_SCHEMA=appwrite \ + _APP_INFLUXDB_HOST=influxdb \ + _APP_INFLUXDB_PORT=8086 \ + _APP_STATSD_HOST=telegraf \ + _APP_STATSD_PORT=8125 \ + _APP_SMTP_HOST= \ + _APP_SMTP_PORT= \ + _APP_SMTP_SECURE= \ + _APP_SMTP_USERNAME= \ + _APP_SMTP_PASSWORD= \ + _APP_SMS_PROVIDER= \ + _APP_SMS_FROM= \ + _APP_FUNCTIONS_SIZE_LIMIT=30000000 \ + _APP_FUNCTIONS_TIMEOUT=900 \ + _APP_FUNCTIONS_CONTAINERS=10 \ + _APP_FUNCTIONS_CPUS=1 \ + _APP_FUNCTIONS_MEMORY=128 \ + _APP_FUNCTIONS_MEMORY_SWAP=128 \ + _APP_EXECUTOR_SECRET=a-random-secret \ + _APP_EXECUTOR_HOST=http://appwrite-executor/v1 \ + _APP_EXECUTOR_RUNTIME_NETWORK=appwrite_runtimes \ + _APP_SETUP=self-hosted \ + _APP_VERSION=$VERSION \ + _APP_USAGE_STATS=enabled \ + _APP_USAGE_TIMESERIES_INTERVAL=30 \ + _APP_USAGE_DATABASE_INTERVAL=900 \ + # 14 Days = 1209600 s + _APP_MAINTENANCE_RETENTION_EXECUTION=1209600 \ + _APP_MAINTENANCE_RETENTION_AUDIT=1209600 \ + # 1 Day = 86400 s + _APP_MAINTENANCE_RETENTION_ABUSE=86400 \ + _APP_MAINTENANCE_INTERVAL=86400 \ + _APP_LOGGING_PROVIDER= \ + _APP_LOGGING_CONFIG= RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone @@ -292,13 +289,13 @@ RUN \ RUN \ if [ "$DEBUG" == "true" ]; then \ - apk add boost boost-dev; \ + apk add boost boost-dev; \ fi WORKDIR /usr/src/code COPY --from=composer /usr/local/src/vendor /usr/src/code/vendor -COPY --from=node /usr/local/src/public/dist /usr/src/code/public/dist +COPY --from=node /usr/local/src/console/build /usr/src/code/console COPY --from=swoole /usr/local/lib/php/extensions/no-debug-non-zts-20200930/swoole.so /usr/local/lib/php/extensions/no-debug-non-zts-20200930/yasd.so* /usr/local/lib/php/extensions/no-debug-non-zts-20200930/ COPY --from=redis /usr/local/lib/php/extensions/no-debug-non-zts-20200930/redis.so /usr/local/lib/php/extensions/no-debug-non-zts-20200930/ COPY --from=imagick /usr/local/lib/php/extensions/no-debug-non-zts-20200930/imagick.so /usr/local/lib/php/extensions/no-debug-non-zts-20200930/ @@ -319,41 +316,41 @@ COPY ./src /usr/src/code/src # Set Volumes RUN mkdir -p /storage/uploads && \ - mkdir -p /storage/cache && \ - mkdir -p /storage/config && \ - mkdir -p /storage/certificates && \ - mkdir -p /storage/functions && \ - mkdir -p /storage/debug && \ - chown -Rf www-data.www-data /storage/uploads && chmod -Rf 0755 /storage/uploads && \ - chown -Rf www-data.www-data /storage/cache && chmod -Rf 0755 /storage/cache && \ - chown -Rf www-data.www-data /storage/config && chmod -Rf 0755 /storage/config && \ - chown -Rf www-data.www-data /storage/certificates && chmod -Rf 0755 /storage/certificates && \ - chown -Rf www-data.www-data /storage/functions && chmod -Rf 0755 /storage/functions && \ - chown -Rf www-data.www-data /storage/debug && chmod -Rf 0755 /storage/debug + mkdir -p /storage/cache && \ + mkdir -p /storage/config && \ + mkdir -p /storage/certificates && \ + mkdir -p /storage/functions && \ + mkdir -p /storage/debug && \ + chown -Rf www-data.www-data /storage/uploads && chmod -Rf 0755 /storage/uploads && \ + chown -Rf www-data.www-data /storage/cache && chmod -Rf 0755 /storage/cache && \ + chown -Rf www-data.www-data /storage/config && chmod -Rf 0755 /storage/config && \ + chown -Rf www-data.www-data /storage/certificates && chmod -Rf 0755 /storage/certificates && \ + chown -Rf www-data.www-data /storage/functions && chmod -Rf 0755 /storage/functions && \ + chown -Rf www-data.www-data /storage/debug && chmod -Rf 0755 /storage/debug # Executables RUN chmod +x /usr/local/bin/doctor && \ - chmod +x /usr/local/bin/maintenance && \ - chmod +x /usr/local/bin/usage && \ - chmod +x /usr/local/bin/install && \ - chmod +x /usr/local/bin/migrate && \ - chmod +x /usr/local/bin/realtime && \ - chmod +x /usr/local/bin/executor && \ - chmod +x /usr/local/bin/schedule && \ - chmod +x /usr/local/bin/sdks && \ - chmod +x /usr/local/bin/specs && \ - chmod +x /usr/local/bin/ssl && \ - chmod +x /usr/local/bin/test && \ - chmod +x /usr/local/bin/vars && \ - chmod +x /usr/local/bin/worker-audits && \ - chmod +x /usr/local/bin/worker-certificates && \ - chmod +x /usr/local/bin/worker-databases && \ - chmod +x /usr/local/bin/worker-deletes && \ - chmod +x /usr/local/bin/worker-functions && \ - chmod +x /usr/local/bin/worker-builds && \ - chmod +x /usr/local/bin/worker-mails && \ - chmod +x /usr/local/bin/worker-messaging && \ - chmod +x /usr/local/bin/worker-webhooks + chmod +x /usr/local/bin/maintenance && \ + chmod +x /usr/local/bin/usage && \ + chmod +x /usr/local/bin/install && \ + chmod +x /usr/local/bin/migrate && \ + chmod +x /usr/local/bin/realtime && \ + chmod +x /usr/local/bin/executor && \ + chmod +x /usr/local/bin/schedule && \ + chmod +x /usr/local/bin/sdks && \ + chmod +x /usr/local/bin/specs && \ + chmod +x /usr/local/bin/ssl && \ + chmod +x /usr/local/bin/test && \ + chmod +x /usr/local/bin/vars && \ + chmod +x /usr/local/bin/worker-audits && \ + chmod +x /usr/local/bin/worker-certificates && \ + chmod +x /usr/local/bin/worker-databases && \ + chmod +x /usr/local/bin/worker-deletes && \ + chmod +x /usr/local/bin/worker-functions && \ + chmod +x /usr/local/bin/worker-builds && \ + chmod +x /usr/local/bin/worker-mails && \ + chmod +x /usr/local/bin/worker-messaging && \ + chmod +x /usr/local/bin/worker-webhooks # Letsencrypt Permissions RUN mkdir -p /etc/letsencrypt/live/ && chmod -Rf 755 /etc/letsencrypt/live/ diff --git a/app/console b/app/console new file mode 160000 index 000000000..4be303e3c --- /dev/null +++ b/app/console @@ -0,0 +1 @@ +Subproject commit 4be303e3c754b7fba367669bd82b194c811836c0