diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 9175db9..59d8f8c 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -1,9 +1,14 @@ module.exports = { extends: [ '@nextcloud', + '@vue/eslint-config-typescript/recommended', + 'plugin:prettier/recommended', ], + parser: 'vue-eslint-parser', rules: { 'jsdoc/require-jsdoc': 'off', 'vue/first-attribute-linebreak': 'off', + 'sort-imports': 'error', + 'vue/attributes-order': ['error', { alphabetical: true }], }, } diff --git a/.gitea/workflows/app_template.yml b/.gitea/workflows/app_template.yml index 2f5ef59..927773e 100644 --- a/.gitea/workflows/app_template.yml +++ b/.gitea/workflows/app_template.yml @@ -30,9 +30,15 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - uses: skjnldsv/read-package-engines-version-actions@v3 + id: versions + with: + fallbackNode: '^20' + fallbackNpm: '^10' - uses: actions/setup-node@v4 with: - node-version: "^20" + node-version: ${{ steps.versions.outputs.nodeVersion }} + - run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' - run: npm ci - run: npm run lint - run: npm run stylelint @@ -48,9 +54,15 @@ jobs: - uses: actions/checkout@v4 - run: curl -sSLo /usr/local/bin/composer https://getcomposer.org/download/latest-stable/composer.phar - run: chmod +x /usr/local/bin/composer + - uses: skjnldsv/read-package-engines-version-actions@v3 + id: versions + with: + fallbackNode: '^20' + fallbackNpm: '^10' - uses: actions/setup-node@v4 with: - node-version: "^20" + node-version: ${{ steps.versions.outputs.nodeVersion }} + - run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' - run: make dist - uses: akkuman/gitea-release-action@v1 with: diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5aa8076 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +FROM nextcloud:30 + +ARG APP_NAME=app_template +ENV NEXTCLOUD_UPDATE=1 +ENV NEXTCLOUD_ADMIN_USER=$APP_NAME +ENV NEXTCLOUD_ADMIN_PASSWORD=$APP_NAME +ENV NEXTCLOUD_INIT_HTACCESS=1 +ENV SQLITE_DATABASE=$APP_NAME + +RUN apt-get update && \ + apt-get install -y nodejs npm sqlite3 && \ + rm -f /usr/local/etc/php/conf.d/opcache-recommended.ini && \ + /entrypoint.sh true + +USER www-data + +COPY --chown=www-data:www-data . apps/$APP_NAME +RUN cd apps/$APP_NAME && make build && cd - && \ + php occ app:enable $APP_NAME && \ + php occ config:system:set debug --value=true + +USER root diff --git a/Makefile b/Makefile index a86ade2..c6d23db 100644 --- a/Makefile +++ b/Makefile @@ -124,11 +124,11 @@ appstore: # Start a nextcloud server on Docker to kickstart developement .PHONY: dev dev: build - docker stop $(app_template) || true - docker rm $(app_template) || true - docker build -t $(app_template) . - docker run -itd --rm --name $(app_template) -v $(CURDIR):/var/www/html/apps/app_template -p 80:80 $(app_template) - npm run watch + docker stop $(app_name) || true + docker rm $(app_name) || true + docker build -t $(app_name) . + docker run -itd --rm --name $(app_name) -v $(CURDIR):/var/www/html/apps/$(app_name) -p 80:80 $(app_name) + npm run watch || docker stop $(app_name) # Generate translations .PHONY: l10n diff --git a/package.json b/package.json index 7c1d074..c21ac4e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,10 @@ { "name": "app_template", "license": "AGPL-3.0-or-later", + "engines": { + "node": "^20.0.0", + "npm": "^10.0.0" + }, "scripts": { "build": "vite build", "dev": "vite --mode development build",