Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • adaures/castopod
  • mkljczk/castopod-host
  • spaetz/castopod-host
  • PatrykMis/castopod
  • jonas/castopod
  • ajeremias/castopod
  • misuzu/castopod
  • KrzysztofDomanczyk/castopod
  • Behel/castopod
  • nebulon/castopod
  • ewen/castopod
  • NeoluxConsulting/castopod
  • nateritter/castopod-og
  • prcutler/castopod
14 results
Show changes
Commits on Source (484)
Showing with 438 additions and 219 deletions
...@@ -3,19 +3,15 @@ ...@@ -3,19 +3,15 @@
"projectOwner": "adaures", "projectOwner": "adaures",
"repoType": "gitlab", "repoType": "gitlab",
"repoHost": "https://code.castopod.org", "repoHost": "https://code.castopod.org",
"files": [ "files": ["README.md"],
"README.md",
"docs/src/index.md"
],
"imageSize": 100, "imageSize": 100,
"commit": false, "commit": false,
"contributorsPerLine": 7,
"contributors": [ "contributors": [
{ {
"login": "yassinedoghri", "login": "yassinedoghri",
"name": "Yassine Doghri", "name": "Yassine Doghri",
"avatar_url": "https://code.castopod.org/uploads/-/system/user/avatar/3/avatar.png", "avatar_url": "https://avatars.githubusercontent.com/u/11021441?v=4",
"profile": "https://github.com/yassinedoghri", "profile": "https://yassinedoghri.com",
"contributions": [ "contributions": [
"code", "code",
"bug", "bug",
...@@ -100,24 +96,14 @@ ...@@ -100,24 +96,14 @@
"name": "Lyonel Bernard", "name": "Lyonel Bernard",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg", "avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://twitter.com/lyonelbernard", "profile": "https://twitter.com/lyonelbernard",
"contributions": [ "contributions": ["bug", "question", "audio", "ideas"]
"bug",
"question",
"audio",
"ideas"
]
}, },
{ {
"login": "ctlw83", "login": "ctlw83",
"name": "Christopher Lagonick-Weitzel", "name": "Christopher Lagonick-Weitzel",
"avatar_url": "https://secure.gravatar.com/avatar/7c2a721b52d0763673a600e8f01bd745?s=80&d=identicon", "avatar_url": "https://secure.gravatar.com/avatar/7c2a721b52d0763673a600e8f01bd745?s=80&d=identicon",
"profile": "https://www.crypticchameleon.com/", "profile": "https://www.crypticchameleon.com/",
"contributions": [ "contributions": ["bug", "question", "audio", "ideas"]
"bug",
"question",
"audio",
"ideas"
]
}, },
{ {
"login": "ernestoacostame", "login": "ernestoacostame",
...@@ -135,24 +121,33 @@ ...@@ -135,24 +121,33 @@
"ideas" "ideas"
] ]
}, },
{
"login": "3wen",
"name": "Ewen",
"avatar_url": "https://mastodon.fedi.bzh/system/accounts/avatars/000/000/002/original/6f387690a504ae46.jpg",
"profile": "https://mastodon.fedi.bzh/@ewen",
"contributions": [
{
"type": "translation",
"url": "https://translate.castopod.org"
},
"ideas",
"code"
]
},
{ {
"login": "Behel", "login": "Behel",
"name": "Bastien Luneteau", "name": "Bastien Luneteau",
"avatar_url": "https://secure.gravatar.com/avatar/ad63ee8ef8e3db8253d21e5012d2724f?s=80&d=identicon", "avatar_url": "https://secure.gravatar.com/avatar/ad63ee8ef8e3db8253d21e5012d2724f?s=80&d=identicon",
"profile": "https://code.castopod.org/Behel", "profile": "https://code.castopod.org/Behel",
"contributions": [ "contributions": ["code", "bug"]
"code",
"bug"
]
}, },
{ {
"login": "cecillie", "login": "cecillie",
"name": "Cécile Ricordeau", "name": "Cécile Ricordeau",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg", "avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://www.cecillie.fr/", "profile": "https://www.cecillie.fr/",
"contributions": [ "contributions": ["design"]
"design"
]
}, },
{ {
"login": "PatrykMis", "login": "PatrykMis",
...@@ -171,48 +166,35 @@ ...@@ -171,48 +166,35 @@
"name": "Marcin Lewandowski", "name": "Marcin Lewandowski",
"avatar_url": "https://secure.gravatar.com/avatar/eed8337939641eac5ad0b570bd6acf96?s=80&d=identicon", "avatar_url": "https://secure.gravatar.com/avatar/eed8337939641eac5ad0b570bd6acf96?s=80&d=identicon",
"profile": "https://code.castopod.org/mspanc", "profile": "https://code.castopod.org/mspanc",
"contributions": [ "contributions": ["bug", "ideas"]
"bug",
"ideas"
]
}, },
{ {
"login": "SJanik", "login": "SJanik",
"name": "Sebastian Janik", "name": "Sebastian Janik",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg", "avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://code.castopod.org/SJanik", "profile": "https://code.castopod.org/SJanik",
"contributions": [ "contributions": ["code"]
"code"
]
}, },
{ {
"login": "patryk", "login": "patryk",
"name": "Patryk Karczmarczyk", "name": "Patryk Karczmarczyk",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg", "avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://code.castopod.org/patryk", "profile": "https://code.castopod.org/patryk",
"contributions": [ "contributions": ["code"]
"code"
]
}, },
{ {
"login": "ddenis", "login": "ddenis",
"name": "denis d", "name": "denis d",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg", "avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://code.castopod.org/ddenis", "profile": "https://code.castopod.org/ddenis",
"contributions": [ "contributions": ["bug", "ideas"]
"bug",
"ideas"
]
}, },
{ {
"login": "douglaskastle", "login": "douglaskastle",
"name": "Douglas Kastle", "name": "Douglas Kastle",
"avatar_url": "https://secure.gravatar.com/avatar/b7e652ba4b6bcd440afa069e7f7bc9e6?s=80&d=identicon", "avatar_url": "https://secure.gravatar.com/avatar/b7e652ba4b6bcd440afa069e7f7bc9e6?s=80&d=identicon",
"profile": "https://code.castopod.org/douglaskastle", "profile": "https://code.castopod.org/douglaskastle",
"contributions": [ "contributions": ["bug", "ideas"]
"bug",
"ideas"
]
}, },
{ {
"login": "cExplorer", "login": "cExplorer",
...@@ -232,66 +214,49 @@ ...@@ -232,66 +214,49 @@
"name": "ImaCrea", "name": "ImaCrea",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg", "avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://code.castopod.org/imacrea", "profile": "https://code.castopod.org/imacrea",
"contributions": [ "contributions": ["bug", "ideas"]
"bug",
"ideas"
]
}, },
{ {
"login": "jonas", "login": "jonas",
"name": "Jonas S", "name": "Jonas S",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg", "avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://code.castopod.org/jonas", "profile": "https://code.castopod.org/jonas",
"contributions": [ "contributions": ["code"]
"code"
]
}, },
{ {
"login": "yannL", "login": "yannL",
"name": "LEFEBVRE Yann", "name": "LEFEBVRE Yann",
"avatar_url": "https://secure.gravatar.com/avatar/9c46600ce566ec6d526370d8e104b1c8?s=80&d=identicon", "avatar_url": "https://secure.gravatar.com/avatar/9c46600ce566ec6d526370d8e104b1c8?s=80&d=identicon",
"profile": "https://code.castopod.org/yannL", "profile": "https://code.castopod.org/yannL",
"contributions": [ "contributions": ["bug"]
"bug"
]
}, },
{ {
"login": "spaetz", "login": "spaetz",
"name": "Sebastian Späth", "name": "Sebastian Späth",
"avatar_url": "https://secure.gravatar.com/avatar/278e1af65e82993efd0ba7bbbacf6435?s=80&d=identicon", "avatar_url": "https://secure.gravatar.com/avatar/278e1af65e82993efd0ba7bbbacf6435?s=80&d=identicon",
"profile": "https://code.castopod.org/spaetz", "profile": "https://code.castopod.org/spaetz",
"contributions": [ "contributions": ["bug", "ideas"]
"bug",
"ideas"
]
}, },
{ {
"login": "rocky", "login": "rocky",
"name": "rocky III", "name": "rocky III",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg", "avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://code.castopod.org/rocky", "profile": "https://code.castopod.org/rocky",
"contributions": [ "contributions": ["bug"]
"bug"
]
}, },
{ {
"login": "Regenpfeifer", "login": "Regenpfeifer",
"name": "Hermann Josef Eckl", "name": "Hermann Josef Eckl",
"avatar_url": "https://code.castopod.org/uploads/-/system/user/avatar/103/avatar.png", "avatar_url": "https://code.castopod.org/uploads/-/system/user/avatar/103/avatar.png",
"profile": "https://code.castopod.org/Regenpfeifer", "profile": "https://code.castopod.org/Regenpfeifer",
"contributions": [ "contributions": ["bug"]
"bug"
]
}, },
{ {
"login": "cyrilledel", "login": "cyrilledel",
"name": "Delhaye Cyrille", "name": "Delhaye Cyrille",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg", "avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://code.castopod.org/cyrilledel", "profile": "https://code.castopod.org/cyrilledel",
"contributions": [ "contributions": ["bug", "ideas"]
"bug",
"ideas"
]
}, },
{ {
"login": "otetranome", "login": "otetranome",
...@@ -330,19 +295,6 @@ ...@@ -330,19 +295,6 @@
} }
] ]
}, },
{
"login": "3wen",
"name": "Ewen",
"avatar_url": "https://mastodon.fedi.bzh/system/accounts/avatars/000/000/002/original/6f387690a504ae46.jpg",
"profile": "https://mastodon.fedi.bzh/@ewen",
"contributions": [
{
"type": "translation",
"url": "https://translate.castopod.org"
},
"ideas"
]
},
{ {
"login": "forght", "login": "forght",
"name": "forght", "name": "forght",
...@@ -370,7 +322,7 @@ ...@@ -370,7 +322,7 @@
{ {
"login": "BoFFire", "login": "BoFFire",
"name": "ButterflyOfFire", "name": "ButterflyOfFire",
"avatar_url": "https://static.mstdn.fr/static/accounts/avatars/000/065/901/original/e18d44b28edd0ada.png", "avatar_url": "https://static.mstdn.fr/static/accounts/avatars/000/065/901/original/5908e93ad5447f15.png",
"profile": "https://mstdn.fr/@ButterflyOfFire", "profile": "https://mstdn.fr/@ButterflyOfFire",
"contributions": [ "contributions": [
{ {
...@@ -492,14 +444,12 @@ ...@@ -492,14 +444,12 @@
"name": "Dimitri Regnier", "name": "Dimitri Regnier",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg", "avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://dimitriregnier.net/", "profile": "https://dimitriregnier.net/",
"contributions": [ "contributions": ["ideas"]
"ideas"
]
}, },
{ {
"login": "irithys", "login": "irithys",
"name": "irithys", "name": "irithys",
"avatar_url": "https://crowdin-static.downloads.crowdin.com/avatar/15405614/large/e46d7f8e9f7c05997827563c3a3cf942.jpeg", "avatar_url": "https://crowdin-static.downloads.crowdin.com/avatar/15405614/large/3086461c47cce0a0c031925e5f943412.png",
"profile": "https://im.irithys.com/@thy", "profile": "https://im.irithys.com/@thy",
"contributions": [ "contributions": [
{ {
...@@ -521,16 +471,104 @@ ...@@ -521,16 +471,104 @@
] ]
}, },
{ {
"login": "ghose", "login": "basen1982",
"name": "ghose (XoseM)", "name": "Andreas Olsson",
"avatar_url": "https://crowdin-static.downloads.crowdin.com/avatar/12617257/large/a201650da44fed28890b0e0d8477a663.jpg", "avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://crowdin.com/profile/xosem", "profile": "https://crowdin.com/profile/basen1982",
"contributions": [ "contributions": [
{ {
"type": "translation", "type": "translation",
"url": "https://translate.castopod.org" "url": "https://translate.castopod.org"
} }
] ]
},
{
"login": "leonfrom",
"name": "leonfrom",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://crowdin.com/profile/leonfrom",
"contributions": [
{
"type": "translation",
"url": "https://translate.castopod.org"
}
]
},
{
"login": "agentcobra57",
"name": "agentcobra",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://crowdin.com/profile/agentcobra57",
"contributions": [
{
"type": "translation",
"url": "https://translate.castopod.org"
}
]
},
{
"login": "alephoto85",
"name": "Alessandro",
"avatar_url": "https://crowdin-static.downloads.crowdin.com/avatar/15094649/large/530391f54157af52ae33058ec15b0f99.jpg",
"profile": "https://crowdin.com/profile/alephoto85",
"contributions": [
{
"type": "translation",
"url": "https://translate.castopod.org"
}
]
},
{
"login": "liimee",
"name": "liimee",
"avatar_url": "https://castopod.org/assets/images/castopod-avatar.jpg",
"profile": "https://crowdin.com/profile/liimee",
"contributions": [
{
"type": "translation",
"url": "https://translate.castopod.org"
}
]
},
{
"login": "ahmedsabouni",
"name": "Ahmed Sabouni",
"avatar_url": "https://avatars.githubusercontent.com/u/74497842?v=4",
"profile": "https://github.com/ahmedsabouni",
"contributions": [
{
"type": "translation",
"url": "https://translate.castopod.org"
}
]
},
{
"login": "KrzysztofDomanczyk",
"name": "KrzysztofDomanczyk",
"avatar_url": "https://avatars.githubusercontent.com/u/75178474?v=4",
"profile": "https://github.com/KrzysztofDomanczyk",
"contributions": ["code"]
},
{
"login": "Dwev",
"name": "Guy Martin",
"avatar_url": "https://avatars.githubusercontent.com/u/46626050?v=4",
"profile": "https://github.com/Dwev",
"contributions": ["bug", "code"]
},
{
"login": "prcutler",
"name": "Paul Cutler",
"avatar_url": "https://avatars.githubusercontent.com/u/67276?v=4",
"profile": "https://github.com/prcutler",
"contributions": ["doc", "question", "ideas"]
},
{
"login": "nateritter",
"name": "Nate Ritter",
"avatar_url": "https://avatars.githubusercontent.com/u/198798?v=4",
"profile": "https://github.com/nateritter",
"contributions": ["code"]
} }
], ],
"commitConvention": "none" "commitConvention": "none"
......
...@@ -4,31 +4,20 @@ ...@@ -4,31 +4,20 @@
# ⚠️ NOT optimized for production # ⚠️ NOT optimized for production
# should be used only for development purposes # should be used only for development purposes
#--------------------------------------------------- #---------------------------------------------------
FROM php:8.1-fpm FROM php:8.4-fpm
LABEL maintainer="Yassine Doghri <yassine@doghri.fr>" LABEL maintainer="Yassine Doghri <yassine@doghri.fr>"
COPY . /castopod
WORKDIR /castopod
# Install composer # Install composer
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
# Install server requirements # Install server requirements
RUN apt-get update \ RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
# gnupg to sign commits with gpg
&& apt-get install --yes --no-install-recommends gnupg \
# npm through the nodejs package
&& curl -fsSL https://deb.nodesource.com/setup_16.x | bash - \
&& apt-get update \ && apt-get update \
&& apt-get install --yes --no-install-recommends nodejs \ && apt-get install --yes --no-install-recommends nodejs \
# update npm # gnupg to sign commits with gpg
&& npm install --global npm@8 \ gnupg \
&& apt-get update \
&& apt-get install --yes --no-install-recommends \
git \
openssh-client \ openssh-client \
vim \
# cron for scheduled tasks # cron for scheduled tasks
cron \ cron \
# unzip used by composer # unzip used by composer
...@@ -38,7 +27,7 @@ RUN apt-get update \ ...@@ -38,7 +27,7 @@ RUN apt-get update \
libicu-dev \ libicu-dev \
libpng-dev \ libpng-dev \
libwebp-dev \ libwebp-dev \
libjpeg-dev \ libjpeg62-turbo-dev \
libfreetype6-dev \ libfreetype6-dev \
zlib1g-dev \ zlib1g-dev \
libzip-dev \ libzip-dev \
...@@ -58,11 +47,4 @@ RUN apt-get update \ ...@@ -58,11 +47,4 @@ RUN apt-get update \
&& docker-php-ext-enable redis \ && docker-php-ext-enable redis \
# mysqli for database access # mysqli for database access
&& docker-php-ext-install mysqli \ && docker-php-ext-install mysqli \
&& docker-php-ext-enable mysqli \ && docker-php-ext-enable mysqli
# configure php
&& echo "file_uploads = On\n" \
"memory_limit = 512M\n" \
"upload_max_filesize = 500M\n" \
"post_max_size = 512M\n" \
"max_execution_time = 300\n" \
> /usr/local/etc/php/conf.d/uploads.ini
* * * * * /usr/local/bin/php /workspaces/castopod/spark tasks:run >> /dev/null 2>&1
// For format details, see https://aka.ms/vscode-remote/devcontainer.json or this file's README at: // For format details, see https://aka.ms/vscode-remote/devcontainer.json or this file's README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.117.1/containers/docker-existing-dockerfile // https://github.com/microsoft/vscode-dev-containers/tree/v0.117.1/containers/docker-existing-dockerfile
{ {
"name": "Castopod dev", "name": "castopod.local",
"dockerComposeFile": ["../docker-compose.yml", "./docker-compose.yml"], "dockerComposeFile": ["./docker-compose.yml"],
"service": "app", "service": "app",
"workspaceFolder": "/castopod", "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
"postCreateCommand": "composer install && npm install && npm run build:static", "postCreateCommand": "composer install && pnpm install && pnpm run build:static && php spark migrate --all && php spark db:seed DevSeeder",
"postStartCommand": "crontab ./crontab && cron && php spark serve --host 0.0.0.0", "postStartCommand": "git config --global --add safe.directory ${containerWorkspaceFolder} && crontab .devcontainer/crontab && cron && php spark serve --host 0.0.0.0",
"postAttachCommand": "crontab ./crontab && service cron reload", "postAttachCommand": "crontab .devcontainer/crontab && service cron reload",
"shutdownAction": "stopCompose", "shutdownAction": "stopCompose",
"settings": { "features": {
"editor.formatOnSave": true, "ghcr.io/devcontainers/features/git:1": {},
"editor.defaultFormatter": "esbenp.prettier-vscode", "ghcr.io/guiyomh/features/vim:0": {},
"[php]": { "ghcr.io/NicoVIII/devcontainer-features/pnpm:2": {}
"editor.defaultFormatter": "bmewburn.vscode-intelephense-client",
"editor.formatOnSave": false
},
"css.validate": false,
"color-highlight.markerType": "dot-before",
"files.associations": {
"*.xml.dist": "xml",
"spark": "php",
"env": "dotenv",
".rsync-filter": "diff"
}
}, },
"extensions": [ "customizations": {
"bmewburn.vscode-intelephense-client", "vscode": {
"bradlc.vscode-tailwindcss", "settings": {
"breezelin.phpstan", "editor.formatOnSave": true,
"dbaeumer.vscode-eslint", "editor.defaultFormatter": "esbenp.prettier-vscode",
"eamodio.gitlens", "[php]": {
"esbenp.prettier-vscode", "editor.defaultFormatter": "bmewburn.vscode-intelephense-client",
"heybourn.headwind", "editor.formatOnSave": false
"jamesbirtles.svelte-vscode", },
"kasik96.latte", "css.validate": false,
"mikestead.dotenv", "color-highlight.markerType": "dot-before",
"naumovs.color-highlight", "files.associations": {
"pflannery.vscode-versionlens", "*.xml.dist": "xml",
"runem.lit-plugin", "spark": "php",
"streetsidesoftware.code-spell-checker", "env": "dotenv",
"stylelint.vscode-stylelint", ".rsync-filter": "diff"
"wayou.vscode-todo-highlight" },
] "json.schemas": [
{
"fileMatch": [
"plugins/**/manifest.json",
"tests/modules/Plugins/mocks/manifests/*.json",
"tests/modules/Plugins/mocks/plugins/**/manifest.json"
],
"url": "/workspaces/castopod/modules/Plugins/Manifest/manifest.schema.json"
}
]
},
"extensions": [
"astro-build.astro-vscode",
"bmewburn.vscode-intelephense-client",
"bradlc.vscode-tailwindcss",
"breezelin.phpstan",
"DavidAnson.vscode-markdownlint",
"dbaeumer.vscode-eslint",
"eamodio.gitlens",
"esbenp.prettier-vscode",
"heybourn.headwind",
"jamesbirtles.svelte-vscode",
"kasik96.latte",
"mikestead.dotenv",
"naumovs.color-highlight",
"pflannery.vscode-versionlens",
"runem.lit-plugin",
"streetsidesoftware.code-spell-checker",
"stylelint.vscode-stylelint",
"unifiedjs.vscode-mdx",
"wayou.vscode-todo-highlight",
"yzhang.markdown-all-in-one",
"42Crunch.vscode-openapi"
]
}
}
} }
version: "3" version: "3"
services: services:
app: app:
build:
context: .
dockerfile: Dockerfile
ports:
- 8080:8080
volumes:
- ../..:/workspaces:cached
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
environment:
CI_ENVIRONMENT: development
vite_environment: development
app_forceGlobalSecureRequests: 0 #false
app_baseURL: http://localhost:8080/
media_baseURL: http://localhost:8080/
admin_gateway: cp-admin
auth_gateway: cp-auth
analytics_salt: dev_analytics_salt
database_default_hostname: mariadb
database_default_database: castopod
database_default_username: castopod
database_default_password: castopod
database_default_DBPrefix: cp_
restapi_enabled: 1 #true
email_fromEmail: hello@castopod.local
email_SMTPCrypto: ""
email_SMTPHost: mailpit
email_SMTPUser: castopod
email_SMTPPass: castopod
email_SMTPPort: 1025
depends_on:
- redis
- mariadb
redis:
image: redis:alpine
volumes:
- redis:/data
mariadb:
image: mariadb:10.2
volumes:
- ./initdb:/docker-entrypoint-initdb.d
- mariadb:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: castopod
MYSQL_USER: castopod
MYSQL_PASSWORD: castopod
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
environment:
PMA_HOST: mariadb
PMA_PORT: 3306
UPLOAD_LIMIT: 300M
ports:
- 8888:80
volumes:
- phpmyadmin:/sessions
depends_on:
- mariadb
mailpit:
image: axllent/mailpit
restart: always
volumes: volumes:
# Mounts the project folder to '/workspace'. While this file is in .devcontainer, - mailpit:/data
# mounts are relative to the first file in the list, which is a level up. ports:
- .:/castopod:cached - 8025:8025
- 1025:1025
environment:
MP_MAX_MESSAGES: 5000
MP_DATA_FILE: /data/mailpit.db
MP_SMTP_AUTH_ACCEPT_ANY: 1
MP_SMTP_AUTH_ALLOW_INSECURE: 1
# Overrides default command so things don't shut down after the process ends. volumes:
command: /bin/sh -c "while sleep 1000; do :; done" redis:
mariadb:
phpmyadmin:
mailpit:
File moved
...@@ -14,9 +14,10 @@ ...@@ -14,9 +14,10 @@
# Instance configuration # Instance configuration
#-------------------------------------------------------------------- #--------------------------------------------------------------------
app.baseURL="https://YOUR_DOMAIN_NAME/" app.baseURL="https://YOUR_DOMAIN_NAME/"
app.mediaBaseURL="https://YOUR_MEDIA_DOMAIN_NAME/" media.baseURL="https://YOUR_MEDIA_DOMAIN_NAME/"
admin.gateway="cp-admin" admin.gateway="cp-admin"
auth.gateway="cp-auth" auth.gateway="cp-auth"
analytics.salt="RANDOM_STRING_OF_64_CHARACTERS"
#-------------------------------------------------------------------- #--------------------------------------------------------------------
# Database configuration # Database configuration
...@@ -27,6 +28,14 @@ database.default.username="root" ...@@ -27,6 +28,14 @@ database.default.username="root"
database.default.password="****" database.default.password="****"
database.default.DBPrefix="cp_" database.default.DBPrefix="cp_"
#--------------------------------------------------------------------
# Email configuration
#--------------------------------------------------------------------
# email.fromEmail="your_email_address"
# email.SMTPHost="your_smtp_host"
# email.SMTPUser="your_smtp_user"
# email.SMTPPass="your_smtp_password"
#-------------------------------------------------------------------- #--------------------------------------------------------------------
# Cache configuration (advanced) # Cache configuration (advanced)
# #
...@@ -42,7 +51,20 @@ cache.handler="file" ...@@ -42,7 +51,20 @@ cache.handler="file"
# cache.redis.port=6379 # cache.redis.port=6379
# cache.redis.database=0 # cache.redis.database=0
#--------------------------------------------------------------------
# S3 configuration
#--------------------------------------------------------------------
# media.fileManager="s3"
# media.s3.endpoint="your_s3_host"
# media.s3.key="your_s3_key"
# media.s3.secret="your_s3_secret"
# media.s3.region="your_s3_region"
#-------------------------------------------------------------------- #--------------------------------------------------------------------
# REST API configuration # REST API configuration
#-------------------------------------------------------------------- #--------------------------------------------------------------------
# restapi.enabled=true # restapi.enabled=true
# restapi.basicAuthUsername=castopod
# restapi.basicAuthPassword=password
# restapi.basicAuth=true
{
"env": {
"browser": true,
"es2020": true
},
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint"],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended"
],
"parserOptions": {
"ecmaVersion": 11,
"sourceType": "module"
},
"rules": {}
}
...@@ -67,6 +67,7 @@ writable/uploads/* ...@@ -67,6 +67,7 @@ writable/uploads/*
!writable/uploads/index.html !writable/uploads/index.html
writable/debugbar/* writable/debugbar/*
!writable/debugbar/.gitkeep
php_errors.log php_errors.log
...@@ -85,6 +86,7 @@ tests/coverage* ...@@ -85,6 +86,7 @@ tests/coverage*
# Don't save phpunit under version control. # Don't save phpunit under version control.
phpunit phpunit
.phpunit.cache
#------------------------- #-------------------------
# Composer # Composer
...@@ -126,30 +128,36 @@ nb-configuration.xml ...@@ -126,30 +128,36 @@ nb-configuration.xml
# Visual Studio Code # Visual Studio Code
.vscode/ .vscode/
.history/
tmp/
/results/ /results/
/phpunit*.xml /phpunit*.xml
/.phpunit.*.cache
# npm # js package manager
yarn.lock yarn.lock
node_modules node_modules
.pnpm-store
# JS # JS
.cache .cache
# public folder # public folder
public/* public/*
public/media/site
!public/media !public/media
!public/.htaccess !public/.htaccess
!public/favicon.ico !public/favicon.ico
!public/icon* !public/icon*
!public/castopod-banner*
!public/castopod-avatar*
!public/index.php !public/index.php
!public/robots.txt !public/robots.txt
!public/.well-known !public/.well-known
!public/.well-known/GDPR.yml !public/.well-known/GDPR.yml
public/assets/*
!public/assets/index.html
# public media folder # public media folder
!public/media/podcasts !public/media/podcasts
!public/media/persons !public/media/persons
...@@ -174,8 +182,13 @@ modules/Admin/Language/*/PersonsTaxonomy.php ...@@ -174,8 +182,13 @@ modules/Admin/Language/*/PersonsTaxonomy.php
mariadb mariadb
phpmyadmin phpmyadmin
sessions sessions
data
# Castopod bundle & packages # Castopod bundle & packages
castopod/ castopod/
castopod-*.zip castopod-*.zip
castopod-*.tar.gz castopod-*.tar.gz
# Plugins
plugins/*
!plugins/.gitkeep
image: code.castopod.org:5050/adaures/castopod:latest image: code.castopod.org:5050/adaures/castopod:ci-php8.4
stages: stages:
- prepare - prepare
- quality - quality
- bundle - bundle
- release - release
- build
- deploy - deploy
- build
php-dependencies: php-dependencies:
stage: prepare stage: prepare
script: script:
# Install all php dependencies # Install all php dependencies
- composer install --prefer-dist --no-ansi --no-interaction --no-progress --ignore-platform-reqs - composer install --prefer-dist --no-ansi --no-interaction --no-progress --ignore-platform-reqs
cache:
key:
files:
- composer.lock
paths:
- .composer-cache
artifacts: artifacts:
expire_in: 30 mins
paths: paths:
- vendor/ - vendor/
expire_in: 30 mins
js-dependencies: js-dependencies:
stage: prepare stage: prepare
script: script:
# Install all npm dependencies # Install all js dependencies
- npm ci - pnpm install
cache:
key:
files:
- pnpm-lock.yaml
paths:
- .pnpm-store
artifacts: artifacts:
expire_in: 30 mins
paths: paths:
- node_modules/ - node_modules/
expire_in: 30 mins
lint-commit-msg: lint-commit-msg:
stage: quality stage: quality
...@@ -41,6 +53,7 @@ lint-commit-msg: ...@@ -41,6 +53,7 @@ lint-commit-msg:
- main - main
- beta - beta
- alpha - alpha
- next
lint-php: lint-php:
stage: quality stage: quality
...@@ -57,27 +70,24 @@ lint-php: ...@@ -57,27 +70,24 @@ lint-php:
lint-js: lint-js:
stage: quality stage: quality
script: script:
- npm run prettier - pnpm run format
- npm run typecheck - pnpm run typecheck
- npm run lint - pnpm run lint
- npm run lint:css - pnpm run lint:css
dependencies: dependencies:
- js-dependencies - js-dependencies
tests: tests:
stage: quality stage: quality
services: services:
- mariadb - mariadb:10.11
variables: variables:
MYSQL_ROOT_PASSWORD: "R00Tp4ssW0RD" MYSQL_ROOT_PASSWORD: "R00Tp4ssW0RD"
MYSQL_DATABASE: "test" MYSQL_DATABASE: "test"
MYSQL_USER: "castopod" MYSQL_USER: "castopod"
MYSQL_PASSWORD: "castopod" MYSQL_PASSWORD: "castopod"
script: script:
- apt-get update && apt-get install -y mariadb-client libmariadb-dev - echo "SHOW DATABASES;" | mariadb --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mariadb "$MYSQL_DATABASE" --skip_ssl
- echo "SHOW DATABASES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mariadb "$MYSQL_DATABASE"
# run phpunit without code coverage # run phpunit without code coverage
# TODO: add code coverage # TODO: add code coverage
...@@ -111,6 +121,7 @@ bundle: ...@@ -111,6 +121,7 @@ bundle:
- main - main
- beta - beta
- alpha - alpha
- next
release: release:
stage: release stage: release
...@@ -127,7 +138,7 @@ release: ...@@ -127,7 +138,7 @@ release:
- chmod +x ./scripts/package.sh - chmod +x ./scripts/package.sh
# run semantic-release script (configured in `.releaserc.json` file) # run semantic-release script (configured in `.releaserc.json` file)
- npm run release - pnpm run release
dependencies: dependencies:
- php-dependencies - php-dependencies
- js-dependencies - js-dependencies
...@@ -139,6 +150,7 @@ release: ...@@ -139,6 +150,7 @@ release:
- main - main
- beta - beta
- alpha - alpha
- next
website: website:
stage: deploy stage: deploy
...@@ -153,9 +165,6 @@ documentation: ...@@ -153,9 +165,6 @@ documentation:
trigger: trigger:
include: docs/.gitlab-ci.yml include: docs/.gitlab-ci.yml
strategy: depend strategy: depend
only:
changes:
- docs/**/*
docker: docker:
stage: build stage: build
...@@ -170,5 +179,6 @@ docker: ...@@ -170,5 +179,6 @@ docker:
- main - main
- beta - beta
- alpha - alpha
- next
variables: variables:
- $CI_PROJECT_NAMESPACE == "adaures" - $CI_PROJECT_NAMESPACE == "adaures"
#!/bin/sh pnpm exec commitlint --verbose --edit "$1"
. "$(dirname "$0")/_/husky.sh"
npx --no-install commitlint --verbose --edit "$1"
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
# CaptainHook 5.10.0 # CaptainHook 5.10.0
INTERACTIVE="--no-interaction" INTERACTIVE="--no-interaction"
vendor/bin/captainhook $INTERACTIVE --configuration=captainhook.json --bootstrap=vendor/autoload.php hook:pre-commit "$@" <&0 vendor/bin/captainhook $INTERACTIVE --configuration=captainhook.json --bootstrap=vendor/autoload.php hook:pre-commit "$@" <&0
npm run typecheck pnpm run typecheck
npx lint-staged pnpm exec lint-staged
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
# CaptainHook 5.10.0 # CaptainHook 5.10.0
INTERACTIVE="--no-interaction" INTERACTIVE="--no-interaction"
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
"trailingComma": "es5", "trailingComma": "es5",
"overrides": [ "overrides": [
{ {
"files": "*.md", "files": ["*.md", "*.mdx"],
"options": { "options": {
"proseWrap": "always" "proseWrap": "always"
} }
......
...@@ -8,16 +8,79 @@ ...@@ -8,16 +8,79 @@
{ {
"name": "beta", "name": "beta",
"prerelease": true "prerelease": true
},
{
"name": "next",
"prerelease": true
} }
], ],
"plugins": [ "plugins": [
"@semantic-release/commit-analyzer", [
"@semantic-release/release-notes-generator", "@semantic-release/commit-analyzer",
{
"preset": "conventionalcommits",
"releaseRules": [
{
"type": "docs",
"scope": "README",
"release": "patch"
},
{
"type": "refactor",
"scope": "core-*",
"release": "minor"
},
{
"type": "refactor",
"release": "patch"
}
],
"parserOpts": {
"noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES", "BREAKING"]
}
}
],
[
"@semantic-release/release-notes-generator",
{
"preset": "conventionalcommits",
"parserOpts": {
"noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES", "BREAKING"]
},
"presetConfig": {
"types": [
{
"type": "feat",
"section": "Features"
},
{
"type": "fix",
"section": "Bug Fixes"
},
{
"type": "chore",
"section": "Internal",
"hidden": false
},
{
"type": "refactor",
"section": "Internal",
"hidden": false
},
{
"type": "perf",
"section": "Internal",
"hidden": false
}
]
}
}
],
"@semantic-release/changelog", "@semantic-release/changelog",
[ [
"@semantic-release/exec", "@semantic-release/exec",
{ {
"prepareCmd": "./scripts/bundle.sh ${nextRelease.version} && ./scripts/package.sh ${nextRelease.version} && npx prettier --write CHANGELOG.md" "prepareCmd": "./scripts/bundle.sh ${nextRelease.version} && ./scripts/package.sh ${nextRelease.version} && pnpm exec prettier --write CHANGELOG.md"
} }
], ],
"@semantic-release/npm", "@semantic-release/npm",
......
# rsync filter rules to copy required files for Castopod's bundle # rsync filter rules to copy required files for Castopod's bundle
- app/Resources/ + resources/icons/***
- resources/**
+ app/*** + app/***
+ modules/*** + modules/***
+ plugins/***
+ public/*** + public/***
+ themes/*** + themes/***
+ vendor/*** + vendor/***
...@@ -10,4 +12,6 @@ ...@@ -10,4 +12,6 @@
+ .env.example + .env.example
+ LICENSE.md + LICENSE.md
+ README.md + README.md
+ spark
+ php-icons.php
- ** - **
{ {
"extends": "stylelint-config-recommended", "extends": "stylelint-config-standard",
"rules": { "rules": {
"at-rule-no-unknown": [ "at-rule-no-unknown": [
true, true,
...@@ -10,10 +10,24 @@ ...@@ -10,10 +10,24 @@
"responsive", "responsive",
"variants", "variants",
"screen", "screen",
"layer" "layer",
"config"
] ]
} }
], ],
"no-descending-specificity": null "at-rule-no-deprecated": [
true,
{
"ignoreAtRules": ["apply"]
}
],
"function-no-unknown": [
true,
{
"ignoreFunctions": ["theme"]
}
],
"no-descending-specificity": null,
"selector-class-pattern": null
} }
} }
File moved
File moved