diff --git a/docs/src/br/contributing/_category_.json b/docs/src/br/contributing/_category_.json index e12f1ce5..f9a087b6 100644 --- a/docs/src/br/contributing/_category_.json +++ b/docs/src/br/contributing/_category_.json @@ -1,4 +1,4 @@ { - "label": "Contributing", + "label": "Heuliañ", "position": 3 -} +} \ No newline at end of file diff --git a/docs/src/br/contributing/guidelines.md b/docs/src/br/contributing/guidelines.md index 1a53c89e..3b3622a3 100644 --- a/docs/src/br/contributing/guidelines.md +++ b/docs/src/br/contributing/guidelines.md @@ -1,154 +1,112 @@ --- -title: Guidelines +title: Tregerioù --- -# Contributing to Castopod +# O rei davet da Castopod -Love Castopod and want to help? Thanks so much, there's something to do for -everybody! +Amoureux de Castopod et souhaitez aider ? Merci beaucoup, il y a quelque chose à faire pour tout le monde ! -Please take a moment to review this document in order to make the contribution -process easy and effective for everyone involved. +Prenez un moment pour parcourir ce document afin de rendre le processus de contribution facile et efficace pour tous les participants. -Following these guidelines helps to communicate that you respect the time of the -developers managing and developing this open source project. In return, they -should reciprocate that respect in addressing your issue or assessing patches -and features. +Le respect de ces directives contribue à communiquer que vous respectez le temps des développeurs qui gèrent et développent ce projet open source. En retour, ils devraient témoigner de ce respect en traitant votre problème ou en évaluant les correctifs et les fonctionnalités. ::: info Note -**Any** contribution made on a repository other than -[the original repository](https://code.castopod.org/adaures/castopod) will not -be accepted. +Toute contribution faite sur un dépôt autre que +[le dépôt original](https://code.castopod.org/adaures/castopod) ne sera pas acceptée. ::: -## Using the issue tracker +## Utilisation du suiveur d'incidents -The [issue tracker](https://code.castopod.org/adaures/castopod/-/issues) is the -preferred channel for [bug reports](#bug-reports), -[features requests](#feature-requests) and -[submitting pull requests](#pull-requests). +Le [suiveur d'incidents](https://code.castopod.org/adaures/castopod/-/issues) est le canal privilégié pour [les rapports de bugs](#rapports-de-bugs), [les demandes de fonctionnalités](#demandes-de-fonctionnalités) et [la soumission de demandes d'intégration](#demandes-d'intégration). -## ⚠️ Security issues and vulnerabilities +## ⚠️ Problèmes de sécurité et vulnérabilités -If you encounter any security issue or vulnerability in the Castopod source, -please contact us directly by email at -[security@castopod.org](mailto:security@castopod.org) +Si vous rencontrez un problème de sécurité ou une vulnérabilité dans la source de Castopod, veuillez nous contacter directement par email à l'adresse [security@castopod.org](mailto:security@castopod.org). -## Bug reports +## Rapports de bugs -A bug is a _demonstrable problem_ that is caused by the code in the repository. -Good bug reports are extremely helpful - thank you! +Un bug est un problème _démontrable_ causé par le code du dépôt. Les bons rapports de bugs sont extrêmement utiles - merci ! -Guidelines for bug reports: +Directives pour les rapports de bugs : -1. **Use the issue search** — check if the issue has already been - reported. +1. **Utilisez la recherche d'incidents** - vérifiez si le problème a déjà été rapporté. -2. **Check if the issue has been fixed** — try to reproduce it using the - latest `main` branch in the repository. +2. **Vérifiez si le problème a été résolu** - essayez de le reproduire en utilisant la dernière branche `main` du dépôt. -3. **Isolate the problem** — ideally create a - [reduced test case](https://css-tricks.com/reduced-test-cases/) and a live - example. +3. **Isolez le problème** - idéalement, créez un + [cas de test réduit](https://css-tricks.com/reduced-test-cases/) et un exemple en direct. -A good bug report shouldn't leave others needing to chase you up for more -information. Please try to be as detailed as possible in your report. What is -your environment? What steps will reproduce the issue? What browser(s) and OS -experience the problem? What would you expect to be the outcome? All these -details will help people to fix any potential bugs. +Un bon rapport de bug ne doit pas laisser les autres vous demander plus d'informations. Essayez d'être aussi détaillé que possible dans votre rapport. Quel est votre environnement ? Quelles sont les étapes pour reproduire le problème ? Quel(s) navigateur(s) et système(s) d'exploitation rencontrent le problème ? Qu'attendez-vous comme résultat ? Tous ces détails aideront les gens à corriger tout bug potentiel. -> [Issue templates](https://docs.gitlab.com/ee/user/project/description_templates.html#using-the-templates) -> have been created for this project. You may use them to help you follow those -> guidelines. +> Des [modèles d'incidents](https://docs.gitlab.com/ee/user/project/description_templates.html#using-the-templates) ont été créés pour ce projet. Vous pouvez les utiliser pour vous aider à suivre ces directives. -## Feature requests +## Demandes de fonctionnalités -Feature requests are welcome. But take a moment to find out whether your idea -fits with the scope and aims of the project. It's up to _you_ to make a strong -case to convince the project's developers of the merits of this feature. Please -provide as much detail and context as possible. +Les demandes de fonctionnalités sont les bienvenues. Mais prenez un moment pour savoir si votre idée correspond au cadre et aux objectifs du projet. C'est à vous de fournir suffisamment de détails et de contexte pour convaincre les développeurs du projet des mérites de cette fonctionnalité. Veuillez fournir autant de détails et de contexte que possible. -## Pull requests +## Demandes d'intégration -Good pull requests - patches, improvements, new features - are a fantastic help. -They should remain focused in scope and avoid containing unrelated commits. +Les bonnes demandes d'intégration - correctifs, améliorations, nouvelles fonctionnalités - sont d'une grande aide. Elles doivent rester centrées sur l'objectif et éviter de contenir des commits non liés. -**Please ask first** before embarking on any significant pull request (e.g. -implementing features, refactoring code, porting to a different language), -otherwise you risk spending a lot of time working on something that the -project's developers might not want to merge into the project. +**Veuillez demander d'abord** avant de vous lancer dans une demande d'intégration importante (par exemple, la mise en œuvre de fonctionnalités, la refonte du code, le portage vers un autre langage), sinon vous risquez de passer beaucoup de temps à travailler sur quelque chose que les développeurs du projet ne souhaitent peut-être pas fusionner dans celui-ci. -Please adhere to the coding conventions used throughout a project (indentation, -accurate comments, etc.) and any other requirements (such as test coverage). +Veuillez respecter les conventions de codage utilisées dans tout projet (indentation, commentaires précis, etc.) ainsi que toutes les autres exigences (telles que la couverture des tests). -Adhering to the following process is the best way to get your work included in -the project: +Le respect du processus suivant est le meilleur moyen d'intégrer votre travail dans le projet : -1. [Fork](https://docs.gitlab.com/ee/gitlab-basics/fork-project.html) the - project, clone your fork, and configure the remotes: +1. [Faites un Fork](https://docs.gitlab.com/ee/gitlab-basics/fork-project.html) du projet, clonez votre fork et configurez les remotes : ```bash -# Clone your fork of the repo into the current directory +# Clonez votre fork du dépôt dans le répertoire courant git clone https://code.castopod.org//castopod.git -# Navigate to the newly cloned directory +# Allez dans le répertoire nouvellement cloné cd castopod -# Assign the original repo to a remote called "upstream" +# Attribuez le dépôt d'origine à un remote appelé "upstream" git remote add upstream https://code.castopod.org/adaures/castopod.git ``` -2. If you cloned a while ago, get the latest changes from upstream: +2. Si vous avez cloné il y a un certain temps, récupérez les derniers changements depuis l'amont : ```bash git checkout main git pull upstream main ``` -3. Create a new topic branch (off the `main` branch) to contain your feature, - change, or fix: +3. Créez une nouvelle branche de sujet (à partir de la branche `main`) pour contenir votre fonctionnalité, votre modification ou votre correction : ```bash -git checkout -b +git checkout -b ``` -4. Commit your changes in logical chunks. Please adhere to these - [git commit message guidelines](https://conventionalcommits.org/) or your - code is unlikely be merged into the main project. Use Git's - [interactive rebase](https://help.github.com/articles/about-git-rebase/) - feature to tidy up your commits before making them public. +4. Committez vos modifications en morceaux logiques. Veuillez respecter ces + [directives de message de commit Git](https://conventionalcommits.org/) ou votre code risque de ne pas être fusionné dans le projet principal. Utilisez la + fonction [rebase interactif de Git](https://help.github.com/articles/about-git-rebase/) pour nettoyer vos commits avant de les rendre publics. -5. Locally merge (or rebase) the upstream dev branch into your topic branch: +5. Fusionnez localement (ou rebase) la branche de développement en amont dans votre branche de sujet : ```bash git pull [--rebase] upstream main ``` -6. Push your topic branch up to your fork: +6. Poussez votre branche de sujet vers votre fork : ```bash -git push origin +git push origin ``` -7. [Open a Pull Request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html#new-merge-request-from-a-fork) - with a clear title and description. +7. [Ouvrez une demande d'intégration](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html#new-merge-request-from-a-fork) avec un titre et une description clairs. -**IMPORTANT**: By submitting a patch, you agree to allow the project owners to -license your work under the terms of the -[GNU AGPLv3](https://code.castopod.org/adaures/castopod/-/blob/main/LICENSE). +**IMPORTANT** : En soumettant un correctif, vous acceptez de permettre aux propriétaires du projet de licencier votre travail selon les termes de la [GNU AGPLv3](https://code.castopod.org/adaures/castopod/-/blob/main/LICENSE). -## Collaborating guidelines +## Directives de collaboration -There are few basic rules to ensure high quality of the project: +Il y a quelques règles de base pour assurer une haute qualité du projet : -- Before merging, a PR requires at least two approvals from the collaborators - unless it's an architectural change, a large feature, etc. If it is, then at - least 50% of the core team have to agree to merge it, with every team member - having a full veto right. (i.e. every single one can block any PR) -- A PR should remain open for at least two days before merging (does not apply - for trivial contributions like fixing a typo). This way everyone has enough - time to look into it. +- Avant la fusion, une PR doit recevoir au moins deux approbations des collaborateurs, à moins qu'il ne s'agisse d'un changement architectural, d'une grande fonctionnalité, etc. Dans ces cas, au moins 50% de l'équipe de base doivent être d'accord pour la fusionner, chaque membre de l'équipe ayant un droit de veto complet. (c'est-à-dire que chacun peut bloquer n'importe quelle PR) +- Une PR doit rester ouverte pendant au moins deux jours avant d'être fusionnée (cela ne s'applique pas aux contributions triviales comme la correction d'une faute de frappe). De cette façon, chacun a suffisamment de temps pour l'examiner. -You are always welcome to discuss and propose improvements to this guideline. +Vous êtes toujours les bienvenus pour discuter et proposer des améliorations à cette directive. \ No newline at end of file diff --git a/docs/src/br/contributing/setup-development.md b/docs/src/br/contributing/setup-development.md index 7e42892a..75c2e46a 100644 --- a/docs/src/br/contributing/setup-development.md +++ b/docs/src/br/contributing/setup-development.md @@ -1,423 +1,43 @@ --- -title: Development setup +title: Prevez stummañ an hennezh + sidebarDepth: 3 --- -# Setup your development environment +# Prevez stummañ an envoriamant ober-tre -## Introduction +## Aozet -Castopod is a web app based on the `php` framework -[CodeIgniter 4](https://codeigniter.com). +[[CodeIgniter 4]](https://codeigniter.com) eo Castopod, ul laezh web o kinnig +wordpress hag oberlec'hiañ podcasts. -We use [Docker](https://www.docker.com/) quickly setup a dev environment. A -`docker-compose.yml` and `Dockerfile` are included in the project's root folder -to help you kickstart your contribution. +Ober a ra neus un envoriamant [Docker](https://www.docker.com/) evit aozadur +alistri, un `docker-compose.yml` ha `Dockerfile` a zo en an droer gwask a-drugarez da vat-da-ober. -> You don't need any prior knowledge of Docker to follow the next steps. -> However, if you wish to use your own environment, feel free to do so! +> Ket ret deoc'h bezañ evidoc'h memestra gant Docker evitañ ober pep stapenn +> an drapo. Ma fell deoc'h implijout ho kement darzhoù unan, tepelt er +> mod-se! -## Setup instructions +## Kohed ebet evit stummañ -### 1. Pre-requisites +### 1. Ar oc'h en em winikal -0. Install [docker](https://docs.docker.com/get-docker). +0. Staliañ an diazired [docker](https://docs.docker.com/get-docker). -1. Clone Castopod project by running: +1. Kloniañ ar Roll ar safarez gant ober: ```bash git clone https://code.castopod.org/adaures/castopod.git ``` -2. Create a `.env` file with the minimum required config to connect the app to - the database and use redis as a cache handler: +2. Krouiñ ur restr `.env` gant kabell minorel ret evidoc'h stagañ ar roll gant + an diazired hag ober implij an diazired redis a-drugarez da c'hoarienn ar + roll. ```ini CI_ENVIRONMENT="development" - # If set to development, you must run `npm run dev` to start the static assets server + # Ma vez roet evidoc'h development, ec'h eo ret deoc'h rañañ `npm run dev` evitañ startañ an diazired trummennañ statik + vite.environment="development" - # By default, this is set to true in the app config. - # For development, this must be set to false as it is - # on a local environment - app.forceGlobalSecureRequests=false - - app.baseURL="http://localhost:8080/" - media.baseURL="http://localhost:8080/" - - admin.gateway="cp-admin" - auth.gateway="cp-auth" - - database.default.hostname="mariadb" - database.default.database="castopod" - database.default.username="castopod" - database.default.password="castopod" - - cache.handler="redis" - cache.redis.host = "redis" - - # You may not want to use redis as your cache handler - # Comment/remove the two lines above and uncomment - # the next line for file caching. - #cache.handler="file" - ``` - - > _NB._ You can tweak your environment by setting more environment variables - > in your custom `.env` file. See the `env` for examples or the - > [CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html) - > for more info. - -3. (for docker desktop) Add the repository you've cloned to docker desktop's - `Settings` > `Resources` > `File Sharing` - -### 2. (recommended) Develop inside the app Container with VSCode - -If you're working in VSCode, you can take advantage of the `.devcontainer/` -folder. It defines a development environment (dev container) with preinstalled -requirements and VSCode extensions so you don't have to worry about them. All -required services will be loaded automagically! 🪄 - -1. Install the VSCode extension - [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) -2. `Ctrl/Cmd + Shift + P` > `Open in container` - - > The VSCode window will reload inside the dev container. Expect several - > minutes during first load as it is building all necessary services. - - **Note**: The dev container will start by running Castopod's php server. - During development, you will have to start [Vite](https://vitejs.dev)'s dev - server for compiling the typescript code and styles: - - ```bash - # run Vite dev server - npm run dev - ``` - - If there is any issue with the php server not running, you can restart them - using the following commands: - - ```bash - # run Castopod server - php spark serve - 0.0.0.0 - ``` - -3. You're all set! 🎉 - - You're now **inside the dev container**, you may use the VSCode console - (`Terminal` > `New Terminal`) to run any command: - - ```bash - # PHP is installed - php -v - - # Composer is installed - composer -V - - # npm is installed - npm -v - - # git is installed - git version - ``` - -For more info, see -[VSCode Remote Containers](https://code.visualstudio.com/docs/remote/containers) - -### 3. Start hacking - -You're all set! Start working your magic by updating the project's files! Help -yourself to the -[CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html) for -more insights. - -To see your changes, go to: - -- `http://localhost:8080/` for the Castopod app -- `http://localhost:8888/` for the phpmyadmin interface: - - - username: **castopod** - - password: **castopod** - -### 2-alt. Develop outside the app container - -You do not wish to use the VSCode devcontainer? No problem! - -1. Start docker containers manually: - - Go to project's root folder and run: - - ```bash - # starts all services declared in docker-compose.yml file - # -d option starts the containers in the background - docker-compose up -d - - # See all running processes (you should see 3 processes running) - docker-compose ps - - # Alternatively, you can check all docker processes - docker ps -a - - ``` - - > The `docker-compose up -d` command will boot 4 containers in the - > background: - > - > - `castopod_app`: a php based container with Castopod requirements - > installed - > - `castopod_redis`: a [redis](https://redis.io/) database to handle queries - > and pages caching - > - `castopod_mariadb`: a [mariadb](https://mariadb.org/) server for - > persistent data - > - `castopod_phpmyadmin`: a phpmyadmin server to visualize the mariadb - > database. - -2. Run any command inside the containers by prefixing them with - `docker-compose run --rm app`: - - ```bash - # use PHP - docker-compose run --rm app php -v - - # use Composer - docker-compose run --rm app composer -V - - # use npm - docker-compose run --rm app npm -v - - # use git - docker-compose run --rm app git version - ``` - ---- - -## Going Further - -### Install Castopod's dependencies - -1. Install php dependencies with [Composer](https://getcomposer.org/) - - ```bash - composer install - ``` - - ::: info Note - - The php dependencies aren't included in the repository. Composer will check - the `composer.json` and `composer.lock` files to download the packages with - the right versions. The dependencies will live under the `vendor/` folder. - For more info, check out the - [Composer documentation](https://getcomposer.org/doc/). - - ::: - -2. Install javascript dependencies with [npm](https://www.npmjs.com/) - - ```bash - npm install - ``` - - ::: info Note - - The javascript dependencies aren't included in the repository. Npm will check - the `package.json` and `package.lock` files to download the packages with the - right versions. The dependencies will live under the `node_module` folder. - For more info, check out the [NPM documentation](https://docs.npmjs.com/). - - ::: - -3. Generate static assets: - - ```bash - # build all static assets at once - npm run build:static - - # build specific assets - npm run build:icons - npm run build:svg - ``` - - ::: info Note - - The static assets generated live under the `public/assets` folder, it - includes javascript, styles, images, fonts, icons and svg files. - - ::: - -### Initialize and populate database - -::: tip Tip - -You may skip this section if you go through the install wizard (go to -`/cp-install`). - -::: - -1. Build the database with the migrate command: - - ```bash - # loads the database schema during first migration - php spark migrate -all - ``` - - You may need to undo the migration (rollback): - - ```bash - # rolls back database schema (deletes all tables and their content) - php spark migrate:rollback - ``` - -2. Populate the database with the required data: - - ```bash - # Populates all required data - php spark db:seed AppSeeder - ``` - - You may choose to add data separately: - - ```bash - # Populates all categories - php spark db:seed CategorySeeder - - # Populates all Languages - php spark db:seed LanguageSeeder - - # Populates all podcasts platforms - php spark db:seed PlatformSeeder - - # Populates all Authentication data (roles definition…) - php spark db:seed AuthSeeder - ``` - -3. (optionnal) Populate the database with test data: - - - Populate test data (login: admin / password: AGUehL3P) - - ```bash - php spark db:seed TestSeeder - ``` - - - Populate with fake podcast analytics: - - ```bash - php spark db:seed FakePodcastsAnalyticsSeeder - ``` - - - Populate with fake website analytics: - - ```bash - php spark db:seed FakeWebsiteAnalyticsSeeder - ``` - - TestSeeder will add an active superadmin user with the following credentials: - - - username: **admin** - - password: **AGUehL3P** - -### Useful docker / docker-compose commands - -- Monitor the app container: - -```bash -docker-compose logs --tail 50 --follow --timestamps app -``` - -- Interact with redis server using included redis-cli command: - -```bash -docker exec -it castopod_redis redis-cli -``` - -- Monitor the redis container: - -```bash -docker-compose logs --tail 50 --follow --timestamps redis -``` - -- Monitor the mariadb container: - -```bash -docker-compose logs --tail 50 --follow --timestamps mariadb -``` - -- Monitor the phpmyadmin container: - -```bash -docker-compose logs --tail 50 --follow --timestamps phpmyadmin -``` - -- Restart docker containers: - -```bash -docker-compose restart -``` - -- Destroy all containers, opposite of `up` command: - -```bash -docker-compose down -``` - -- Rebuild app container: - -```bash -docker-compose build app -``` - -Check [docker](https://docs.docker.com/engine/reference/commandline/docker/) and -[docker-compose](https://docs.docker.com/compose/reference/) documentations for -more insights. - -## Known issues - -### Allocation failed - JavaScript heap out of memory - -This happens when running `npm install`. - -👉 By default, docker might not have access to enough RAM. Allocate more memory -and run `npm install` again. - -### (Linux) Files created inside container are attributed to root locally - -You may use Linux user namespaces to fix this on your machine: - -::: info Note - -Replace "username" with your local username - -::: - -1. Go to `/etc/docker/daemon.json` and add: - - ```json - { - "userns-remap": "username" - } - ``` - -2. Configure the subordinate uid/guid: - - ```bash - # in /etc/subuid - username:1000:1 - username:100000:65536 - ``` - - ```bash - # in /etc/subgid - username:1000:1 - username:100000:65536 - ``` - -3. Restart docker: - - ```bash - sudo systemctl restart docker - ``` - -4. That's it! Now, the root user in the container will be mapped to the user on - your local machine, no more permission issues! 🎉 - -You can check -[this great article](https://www.jujens.eu/posts/en/2017/Jul/02/docker-userns-remap/) -to know more about how it works. + # Dre verd e veze \ No newline at end of file diff --git a/docs/src/br/getting-started/_category_.json b/docs/src/br/getting-started/_category_.json index 877a378f..892099cd 100644 --- a/docs/src/br/getting-started/_category_.json +++ b/docs/src/br/getting-started/_category_.json @@ -1,4 +1,4 @@ { - "label": "Getting Started", + "label": "O kregiñ", "position": 2 -} +} \ No newline at end of file diff --git a/docs/src/br/getting-started/auth.md b/docs/src/br/getting-started/auth.md index ff5d59c0..8944a909 100644 --- a/docs/src/br/getting-started/auth.md +++ b/docs/src/br/getting-started/auth.md @@ -1,87 +1,79 @@ ---- -title: Authentication & Authorization -sidebarDepth: 3 ---- +# Dilennadur ha Aotreoù -# Authentication & Authorization +Gestionet eo dilennadur ha aotreoù e Castopod en ur ober gant `codeigniter/shield` kevreet gant ar gerioù doujet. Kinniget e vez al rolloù ha dilennadurioù war duo stumm div niver : -Castopod handles authentication and authorization using `codeigniter/shield` -coupled with custom rules. Roles and permissions are defined at two levels: +1. [war lec'h an enklask](#1-rolloù-ha-dilennadurioù-war-lec'h-an-enklask) +2. [diwar-benn ur podcast](#2-rolloù-ha-dilennadurioù-diwar-benn-ur-podcast) -1. [instance wide](#1-instance-wide-roles-and-permissions) -2. [per podcast](#2-per-podcast-roles-and-permissions) +## 1. Rolloù ha dilennadurioù war lec'h an enklask -## 1. Instance wide roles and permissions +### Rolloù war lec'h an enklask -### Instance roles + - - -| role | description | permissions | -| ----------- | ----------------------------------- | ------------------------------------------------------------------------------------------ | -| Super admin | Has complete control over Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks | -| Manager | Manages Castopod's content. | podcasts.create, podcasts.import, persons.manage, pages.manage | -| Podcaster | General users of Castopod. | admin.access | +| rol | deskrivadur | dilennadurioù | +| ------------ | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Super admin | Diell du uriñ war Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks | +| Tolter | Manaj an danvez en Castopod. | podcasts.create, podcasts.import, persons.manage, pages.manage | +| Podcaster | An implijerien a veva gant Castopod. | admin.access | -### Instance permissions +### Dilennadurioù war lec'h an enklask - + -| permission | description | -| ----------------------- | ------------------------------------------------------------------ | -| admin.access | Can access the Castopod admin area. | -| admin.settings | Can access the Castopod settings. | -| users.manage | Can manage Castopod users. | -| persons.manage | Can manage persons. | -| pages.manage | Can manage pages. | -| podcasts.view | Can view all podcasts. | -| podcasts.create | Can create new podcasts. | -| podcasts.import | Can import podcasts. | -| fediverse.manage-blocks | Can block fediverse actors/domains from interacting with Castopod. | +| dilennadur | deskrivadur | +| ----------------------- | ----------------------------------------------------------------------------------------------- | +| admin.access | Kerzhel da zenvel eno adalek kêr maez d'ar mareoù Castopod e vez diskouezhet. | +| admin.settings | Kerzhel da aked da preferadennoù Castopod. | +| users.manage | Kerzhel da monedañ an implijerien e Castopod. | +| persons.manage | Kerzhel da monedañ ar brudennoù. | +| pages.manage | Kerzhel da monedañ ar bajennoù. | +| podcasts.view | Kerzhel da welout an holl podcastoù. | +| podcasts.create | Kerzhel da grouiñ podcastoù nevez. | +| podcasts.import | Kerzhel da imporzhiañ podcastoù. | +| fediverse.manage-blocks | Kerzhel da ostilhoù blokea castorien/tirioù fediverse da gomz diouzh Castopod. | -## 2. Per podcast roles and permissions +## 2. Rolloù ha dilennadurioù diwar-benn ur podcast -### Per podcast roles +### Rolloù war buhez an enklask - + -| role | description | permissions | -| ------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Admin | Has complete control of podcast #{id}. | \* | -| Editor | Manages content and publications of podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments | -| Author | Manages content of podcast #{id} but cannot publish them. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips | -| Guest | General contributor of the podcast #{id}. | view, episodes.view | +| rol | deskrivadur | dilennadurioù | +| --------- | ------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Admin | Kontroll gwirouesel ouzh ar podcast #{id}. | \* | +| Reder | Manaj ar c'hoant hag an embannadur war ar podcast #{id}. | gwelet, kemm, embregiñ treuzkas, embregiñ urzhiataerien, embregiñ platfomoù, embregiñ embannadurioù, embregiñ niverennadennoù, kemm embregiñ, dilemel embregiñ, manaj embregiñ urzhiataerien, manaj embregiñ trolioù, +manaj embregiñ embannadurioù, manaj embregiñ commentoù | +| Aotrou | Manaj kontant ar podcast #{id}, met ne c'helle ket embannout anezho. | gwelet, manaj urzhiataerien, niverennadennoù, kemm niverennadennoù embregiñ, dilemel niverennadennoù | +| Devezhmat | Ousitan allenn eus ar podcast #{id}. | gwelet, kemm niverennadennoù | -### Per podcast permissions +### Dilennadurioù war buhez an enklask - + -| permission | description | -| ---------------------------- | ------------------------------------------------------------------------ | -| view | Can view dashboard and analytics of podcast #{id}. | -| edit | Can edit podcast #{id}. | -| delete | Can delete podcast #{id}. | -| manage-import | Can synchronize imported podcast #{id}. | -| manage-persons | Can manage subscriptions of podcast #{id}. | -| manage-subscriptions | Can manage subscriptions of podcast #{id}. | -| manage-contributors | Can manage contributors of podcast #{id}. | -| manage-platforms | Can set/remove platform links of podcast #{id}. | -| manage-publications | Can publish podcast #{id}. | -| manage-notifications | Can view and mark notifications as read for podcast #{id}. | -| interact-as | Can interact as the podcast #{id} to favourite, share or reply to posts. | -| episodes.view | Can view dashboard and analytics of podcast #{id}. | -| episodes.create | Can create episodes for podcast #{id}. | -| episodes.edit | Can edit podcast #{id}. | -| episodes.delete | Can delete podcast #{id}. | -| episodes.manage-persons | Can manage subscriptions of podcast #{id}. | -| episodes.manage-clips | Can manage video clips or soundbites of podcast #{id}. | -| episodes.manage-publications | Can publish podcast #{id}. | -| episodes.manage-comments | Can create/remove episode comments of podcast #{id}. | +| dilennadur | deskrivadur | +| ------------------------------ | ---------------------------------------------------------------------------------------------------- | +| gwelet | Gwelet daspyegelezh ha maez ar podcast #{id}. | +| kemm | Kemmañ ar podcast #{id}. | +| dilemel | Dilemel ar podcast #{id}. | +| embregiñ treuzkas | Kemmañ ar podcast treuzkaset #{id}. | +| embregiñ urzhiataerien | Gwiriañ/neuzeiañ embregiñ urzhiataerienient eus ar podcast #{id}. | +| embregiñ plaennerion | Gellet kempuniañ/skartañ ereuredoù al lunennañ embregel ar podcast #{id}. | +| embregiñ embannadurioù | Kemmañ ar podcast #{id}. | +| embregiñ niverennadennoù | Gwelet ha selaou treuzkas ar podcast #{id}. | +| embregiñ abonadennoù | Gwiriañ/neuzeiañ embregiñ an abonadennou eus ar podcast #{id}. | +| embregiñ embregelourion | Gwiriañ/neuzeiañ embregiñ embregelourion ar podcast #{id}. | +| embregiñ platfomoù | Gellet stlennu/dilemel liammoù etre ar podcast ha platfomoù #{id}. | +| embregiñ embregeriñ | Gell an embregiñ ar podcast #{id} embregeriñ. | +| embregiñ niverennadennoù | Gwiriañ/neuzeiañ embregiñ niverennadennoù eus ar podcast #{id}. | +| embregiñ treuzkredoù | Gwiriañ/neuzeiañ embregiñ treuzkredoù video pe sonenn eus ar podcast #{id}. | +| embregiñ embregelouriezhioù | Gwiriañ/neuzeiañ embregiñ embregelouriezhioù eus ar podcast #{id}. | +| embregiñ commentoù | Kemmañ/Seleiñ an aozerentoù war ur video eus ar podcast #{id}. | - + \ No newline at end of file diff --git a/docs/src/br/getting-started/docker.md b/docs/src/br/getting-started/docker.md index 75158bd6..283624e7 100644 --- a/docs/src/br/getting-started/docker.md +++ b/docs/src/br/getting-started/docker.md @@ -1,35 +1,28 @@ --- -title: Official Docker images +title: Skoazelloù dreistlennadel Docker sidebarDepth: 3 --- -# Official Docker images +# Skoazelloù dreistlennadel Docker -Castopod pushes 3 Docker images to the Docker Hub during its automated build -process: +En oberiant embann Castopod 3 skoazell dreistlennadel dre ar Restro_dressed Dockeñs : -- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): an all - in one castopod image using nginx unit -- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): the app bundle - with all of Castopod dependencies -- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an - Nginx configuration for Castopod +- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): un holl-enn unan-stumm embannadenn Castopod a gousk gant ynji nginx +- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): ar verzhiad mikro + gant pep tra zo anezho eus Castopod +- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): ur skin eus Nginx evit Castopod -Additionally, Castopod requires a MySQL-compatible database. A Redis database -can be added as a cache handler. +Deuit da essayal ez anvioù -## Supported tags +- `développer` [dibresel], ar verzhin-stub penn-blokhoù divyezhek +- `beta` [stabil], ar verzhin vanityou dibresel +- `1.x.x` [stabil], verzhin spaekadennel (abaoe `1.0.0`) -- `develop` [unstable], latest development branch build -- `beta` [stable], latest beta version build -- `latest` [stable], latest version build -- `1.x.x` [stable], specific version build (since `1.0.0`) +## Ur skouer da achampion -## Example usage - -1. Install [docker](https://docs.docker.com/get-docker/) and +1. Montit [docker](https://docs.docker.com/get-docker/) ha [docker-compose](https://docs.docker.com/compose/install/) -2. Create a `docker-compose.yml` file with the following: +2. Krouit ur restr `docker-compose.yml` gant an traoù-mañ : ```yml version: "3.7" @@ -87,13 +80,12 @@ can be added as a cache handler. castopod-db: ``` - You have to adapt some variables to your needs (e.g. `CP_BASEURL`, - `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` and `CP_ANALYTICS_SALT`). + Ret eo deoc'h troidigezañ boutailhoù nemetiñ ouzh ho aotrenioù (ennennoù p. ex. + `CP_BASEURL`, `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` ha `CP_ANALYTICS_SALT`). -3. Setup a reverse proxy for TLS (SSL/HTTPS) +3. Montit ur renverssez bregustell evit TLS (SSL/HTTPS) - TLS is mandatory for ActivityPub to work. This job can easily be handled by - a reverse proxy, for example with [Caddy](https://caddyserver.com/): + Ret eo mont ul renverssez bregustell evit glotaat gant TLS. Gallout a reomp mont gant an betek [Caddy](https://caddyserver.com/): ``` #castopod @@ -102,57 +94,57 @@ can be added as a cache handler. } ``` -4. Run `docker-compose up -d`, wait for it to initialize and head on to - `https://castopod.example.com/cp-install` to finish setting up Castopod! +4. Leit-stur `docker-compose up -d`, kuitit evit ma vehe eno war + `https://castopod.example.com/cp-install` gant mañskrid ho dihuniañ. -5. You're all set, start podcasting! 🎙️🚀 +5. Prest oc'h, deuit da embann! 🎙️🚀 -## Environment Variables +## Aotrenioù Adalek -- **castopod/castopod** and **castopod/app** +- **castopod/castopod** ha **castopod/app** - | Variable name | Type (`default`) | Default | - | ------------------------------------- | ----------------------- | ---------------- | - | **`CP_BASEURL`** | string | `undefined` | - | **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` | - | **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` | - | **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` | - | **`CP_ANALYTICS_SALT`** | string | `undefined` | - | **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` | - | **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` | - | **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` | - | **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` | - | **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` | - | **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` | - | **`CP_REDIS_HOST`** | ?string | `"localhost"` | - | **`CP_REDIS_PASSWORD`** | ?string | `null` | - | **`CP_REDIS_PORT`** | ?number | `6379` | - | **`CP_REDIS_DATABASE`** | ?number | `0` | - | **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` | - | **`CP_EMAIL_FROM`** | ?string | `undefined` | - | **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` | - | **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` | - | **`CP_EMAIL_SMTP_PORT`** | ?number | `25` | - | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` | - | **`CP_ENABLE_2FA`** | ?boolean | `undefined` | - | **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` | - | **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` | - | **`CP_MEDIA_S3_KEY`** | ?string | `undefined` | - | **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` | - | **`CP_MEDIA_S3_REGION`** | ?string | `undefined` | - | **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` | - | **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` | - | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` | - | **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` | - | **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` | - | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | - | **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` | - | **`CP_TIMEOUT`** | ?number | `900` | + | Anv ar bajenn | Typ (`default`) | Parad pregemper | + | ------------------------------------------------- | ----------------------- | ---------------- | + | **`CP_BASEURL`** | chadennell | `undefined` | + | **`CP_MEDIA_BASEURL`** | ?chadennell | `CP_BASEURL` | + | **`CP_ADMIN_GATEWAY`** | ?chadennell | `"cp-admin"` | + | **`CP_AUTH_GATEWAY`** | ?chadennell | `"cp-auth"` | + | **`CP_ANALYTICS_SALT`** | chadennell | `undefined` | + | **`CP_DATABASE_HOSTNAME`** | ?chadennell | `"mariadb"` | + | **`CP_DATABASE_NAME`** | ?chadennell | `MYSQL_DATABASE` | + | **`CP_DATABASE_USERNAME`** | ?chadennell | `MYSQL_USER` | + | **`CP_DATABASE_PASSWORD`** | ?chadennell | `MYSQL_PASSWORD` | + | **`CP_DATABASE_PREFIX`** | ?chadennell | `"cp_"` | + | **`CP_CACHE_HANDLER`** | [`"file"` pe `"redis"`] | `"file"` | + | **`CP_REDIS_HOST`** | ?chadennell | `"localhost"` | + | **`CP_REDIS_PASSWORD`** | ?chadennell | `null` | + | **`CP_REDIS_PORT`** | ?niverenn | `6379` | + | **`CP_REDIS_DATABASE`** | ?niverenn | `0` | + | **`CP_EMAIL_SMTP_HOST`** | ?chadennell | `undefined` | + | **`CP_EMAIL_FROM`** | ?chadennell | `undefined` | + | **`CP_EMAIL_SMTP_USERNAME`** | ?chadennell | `"localhost"` | + | **`CP_EMAIL_SMTP_PASSWORD`** | ?chadennell | `null` | + | **`CP_EMAIL_SMTP_PORT`** | ?niverenn | `25` | + | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` pe `"ssl"`] | `"tls"` | + | **`CP_ENABLE_2FA`** | ?boolezenn | `undefined` | + | **`CP_MEDIA_FILE_MANAGER`** | ?chadennell | `undefined` | + | **`CP_MEDIA_S3_ENDPOINT`** | ?chadennell | `undefined` | + | **`CP_MEDIA_S3_KEY`** | ?chadennell | `undefined` | + | **`CP_MEDIA_S3_SECRET`** | ?chadennell | `undefined` | + | **`CP_MEDIA_S3_REGION`** | ?chadennell | `undefined` | + | **`CP_MEDIA_S3_BUCKET`** | ?chadennell | `undefined` | + | **`CP_MEDIA_S3_PROTOCOL`** | ?niverenn | `undefined` | + | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolezenn | `undefined` | + | **`CP_MEDIA_S3_KEY_PREFIX`** | ?chadennell | `undefined` | + | **`CP_DISABLE_HTTPS`** | ?[`0` pe `1`] | `undefined` | + | **`CP_MAX_BODY_SIZE`** | ?niverenn (gant saozh) | `512M` | + | **`CP_PHP_MEMORY_LIMIT`** | ?niverenn (gant saozh) | `512M` | + | **`CP_TIMEOUT`** | ?niverenn | `900` | - **castopod/web-server** - | Variable name | Type | Default | - | ---------------------- | --------------------- | ------- | - | **`CP_APP_HOSTNAME`** | ?string | `"app"` | - | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | - | **`CP_TIMEOUT`** | ?number | `900` | + | Anv ar bajenn | Typ | Parad pregemper | + | ------------------------------ | --------------------- | ---------------- | + | **`CP_APP_HOSTNAME`** | ?chadennell | `"app"` | + | **`CP_MAX_BODY_SIZE`** | ?niverenn (gant saozh) | `512M` | + | **`CP_TIMEOUT`** | ?niverenn | `900` | \ No newline at end of file diff --git a/docs/src/br/getting-started/install.md b/docs/src/br/getting-started/install.md index 3826a9a7..d4d79ab9 100644 --- a/docs/src/br/getting-started/install.md +++ b/docs/src/br/getting-started/install.md @@ -1,221 +1,101 @@ --- -title: Staliañ +title: Lec'hiadur + sidebarDepth: 3 + --- -# Penaos staliañ Castopod? +# Petra zo da ober evit staliañ Castopod? -Castopod was thought-out to be easy to install. Whether using dedicated or -shared hosting, you can install it on most PHP-MySQL compatible web servers. +Kaset eo bet Castopod da gas gant ma vo posupl. Mard oc'h o implijout un oberiant dedie pe-drosoc'h, posupl eo da staliañ war pep mañer ar servijer web a zegas PHP-MySQL. -::: tip Note +::: tip Notenn -We've released official Docker images for Castopod! +Kaset hon eus dastumenni Docker ofisiel evit Castopod! -If you prefer using Docker, you may skip this and go straight to the -[docker documentation](./docker.md) for Castopod. +Mard oc'h o soñj staliañ Docker, ur membris da daesmet Castopod, gellout a rit loñkañ kuit hemañ hag ober war lec'hienn [Docker Castopod](./docker.md). ::: -## Requirements +## Arventennoù -- PHP v8.1 only -- MySQL version 5.7 or higher or MariaDB version 10.2 or higher -- HTTPS support -- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - incoming requests +- PHP v8.1 nemetken +- MariaDB version 5.7 pe c'hoazh pe MySQL version 10.2 pe lusiañ +- Geriañs HTTPS +- Oroerenn horlozh ntp-synced evit gwiriañ displya daoliou Breizh. -### PHP v8.1 only +### PHP v8.1 nemetken -PHP version 8.1 is required, with the following extensions installed: +Rez eo nemetken versadur 8.1 PHP, gant an estentiens War-lerc'h: -- [intl](https://php.net/manual/en/intl.requirements.php) -- [libcurl](https://php.net/manual/en/curl.requirements.php) -- [mbstring](https://php.net/manual/en/mbstring.installation.php) -- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**, - **PNG** and **WEBP** libraries. -- [exif](https://www.php.net/manual/en/exif.installation.php) +- [intl](https://www.php.net/manual/fr/intl.requirements.php) +- [libcurl](https://www.php.net/manual/fr/curl.requirements.php) +- [mbstring](https://www.php.net/manual/fr/mbstring.installation.php) +- [gd](https://www.php.net/manual/en/image.installation.php) gant **JPEG**, + **PNG** ha **WebP** levrioù. +- [exif](https://www.php.net/manual/fr/exif.installation.php) -Additionally, make sure that the following extensions are enabled in your PHP: +Gwell vat e fellout a reoc'h sellet ma vo an estentiens-se fardet en ho PHP : -- json (enabled by default - don't turn it off) -- xml (enabled by default - don't turn it off) -- [mysqlnd](https://php.net/manual/en/mysqlnd.install.php) +- json (gweredekaet dre ziouar - ne lakaat ket da weredekaat) +- xml (gweredekaet dre ziouar - ne lakaat ket da weredekaat) +- [mysqlnd](https://www.php.net/manual/fr/mysqlnd.install.php) -### MySQL compatible database +### Diazez geriañs MySQL-penurzh -> We recommend using [MariaDB](https://mariadb.org). +> Gwerzhet ho peus stumm [MariaDB](https://mariadb.org). -::: warning Warning +::: warning Explicoù -Castopod only works with supported MySQL 5.7 or higher compatible databases. It -will break with the previous MySQL v5.6 for example as its end of life was on -February 5, 2021. +Ne lakaer ket g Acastopod da van a-barzh a-dreuz MySQL 5.7 pe kenstroll diwezhañ 5.6 (e-korf ar skoazell dindan d'an 5 a viz C'hwevrer 2021) pe kelenn. ::: -You will need the server hostname, database name, username and password to -complete the installation process. If you do not have these, please contact your -server administrator. +Deoc'h eo ret gouzout stummañ an divyezhegezh servijer, anv an diaz, anv ar +geriadur ha ar ger-tremen da gemer perzh er stolidiñ. Mard oc'h ket ganto e usin, +galvit soudard ar wirinidigezh. -#### Privileges +#### Skoazell alc'hwez -User must have at least these privileges on the database for Castopod to work: -`CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`, `UPDATE`, -`REFERENCES`, `CREATE VIEW`. +Ret eo eta reiñ a-stegal zo ar c'hlask reizhiad en ounskridoù stolidiñ da groc'hañ lakaet Castopod da gichenah da : `CREATE`, `ALTER`, `DILET`, `DETEXEKI`, +`GWENOLOU`, `ENASKI', `DIBAB`, `KENASKI`,`KEMMESK`, `KREUZAÑ GWENDEL`. -### (Optional) FFmpeg v4.1.8 or higher for Video Clips +### (Profetek) FFmpeg v4.1.8 pe lusiañ evit kuzhioù video -[FFmpeg](https://www.ffmpeg.org/) version 4.1.8 or higher is required if you -want to generate Video Clips. The following extensions must be installed: +Ret eo FFmpeg divyezhezh 4.1.8 pe lusiañ evit kaout kuzhioù video. Setu ar c' estentiens monet : -- **FreeType 2** library for - [gd](https://www.php.net/manual/en/image.installation.php). +- levrioù **FreeType 2** evit ar [gd](https://www.php.net/manual/en/image.installation.php). -### (Optional) Other recommendations +### (Profetek) Itratelioù all -- Redis for better cache performances. -- CDN for static files caching and better performances. -- e-mail gateway for lost passwords. +- Redis evit gwirioù gwellañ kuzhioù traoù +- CDN evit diflokañ dafar staoteriek ha gwirioù gwellañ kuzhioù traoù +- Dorrestell postel evit ar gerioù-pas goulennet. -## Install instructions +## Lec'hienn staliañ -### Pre-requisites +### Arventennennoù -0. Get a Web Server with [requirements](#requirements) installed -1. Create a MySQL database for Castopod with a user having access and - modification privileges (for more info, see - [MySQL compatible database](#mysql-compatible-database)). -2. Activate HTTPS on your domain with an _SSL certificate_. -3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto - the web server if you haven’t already. - - ⚠️ Set the web server document root to the `public/` sub-folder within the - `castopod` folder. -4. Add **cron tasks** on your web server for various background processes - (replace the paths accordingly): +0. Pell eo bet ho serfer web gant ar [arventennoù](#arventennoù) a staliañ. +1. Krouiñ un diaz MySQL evit Castopod gant un implijer en deus ar geriañs gwellañ hag ar geriañs hizivaet-bev (evit muien etre, sellit war [diaz gesket MySQL-penurzh](#diazez-geriañs-mysql-penurzh)). +2. Diazeont HTTPS war ho domani gant ur _savadur SSL_ war-raok. +3. Prenit ha dezarputit al lazhet [pakad diabarzh] (https://castopod.org/) + war ar stolidiñ web m'ho peus ket graet dirak. + - ⚠️ Lakaat ar c'horn zellet ar stolidiñ web d'ober da voud eo _dont davet_ + degasvez `public/` horvez e kasfe dantoñ hor genstrivad. + +4. Ouzhañ **daskoù cron** war ho serfer web evit merañ. ```bash * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1 ``` - **Note** - If you do not add this cron task, the following Castopod features - will not work: + **Notenn** - Mard oc'h ket o skrivañ an dask paour-mañ, ne vo ket ober a-barzh + Acastopod ne vo lakaet emgevreulek ar pezh a c'hoarvez: - - Importing a podcast from an existing RSS feed - - Broadcasting social activities to your followers in the fediverse - - Broadcasting episodes to open hubs using + - Enporzhiañ boucleier podkast gant feed RSS diagaset dijaouel + - Skignaat evitañ ho c'hemerian e-barzh an aod-delveg gant ar fediverse + - Skignaat epizoedou da kehentiñ en e avidoù digunghevus en ur ober servij. [WebSub](https://en.wikipedia.org/wiki/WebSub) - - Generating video clips - - [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips) - -### (recommended) Install Wizard - -1. Run the Castopod install script by going to the install wizard page - (`https://your_domain_name.com/cp-install`) in your favorite web browser. -2. Follow the instructions on your screen. -3. Start podcasting! - -::: info Note - -The install script writes a `.env` file in the package root. If you cannot go -through the install wizard, you can create and edit the `.env` file manually -based on the `.env.example` file. - -::: - -### Email/SMTP setup - -Email configuration is required for some features to work properly (eg. -retrieving your forgotten password, sending instructions to premium subscribers, -…) - -You may add your email configuration in your instance's `.env` like so: - -```ini -# […] - -email.fromEmail="your_email_address" -email.SMTPHost="your_smtp_host" -email.SMTPUser="your_smtp_user" -email.SMTPPass="your_smtp_password" -``` - -#### Email config options - -| Variable name | Type | Default | -| ---------------- | -------------------- | ------------ | -| **`fromEmail`** | string | `undefined` | -| **`fromName`** | string | `"Castopod"` | -| **`SMTPHost`** | string | `undefined` | -| **`SMTPUser`** | string | `undefined` | -| **`SMTPPass`** | string | `undefined` | -| **`SMTPPort`** | number | `25` | -| **`SMTPCrypto`** | [`"tls"` or `"ssl"`] | `"tls"` | - -### Media storage - -By default, files are saved to the `public/media` folder using the file system. -If you need to relocate the `media` folder to a different location, you can -specify it in your `.env` file as shown below: - -```ini -# […] - -media.root="media" -media.storage="/mnt/storage" -``` - -In this example, the files will be saved to the /mnt/storage/media folder. Make -sure to also update your web server configuration to reflect this change. - -### S3 - -If you prefer storing your media files on an S3 compatible storage, you may -specify it in your `.env`: - -```ini -# […] - -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" -``` - -#### S3 config options - -| Variable name | Type | Default | -| ----------------------- | ------- | ----------- | -| **`endpoint`** | string | `undefined` | -| **`key`** | string | `undefined` | -| **`secret`** | string | `undefined` | -| **`region`** | string | `undefined` | -| **`bucket`** | string | `castopod` | -| **`protocol`** | number | `undefined` | -| **`pathStyleEndpoint`** | boolean | `false` | -| **`keyPrefix`** | string | `undefined` | - -## Community packages - -If you don't want to bother with installing Castopod manually, you may use one -of the packages created and maintained by the open-source community. - -### Install with YunoHost - -[YunoHost](https://yunohost.org/) is a distribution based on Debian GNU/Linux -made up of free and open-source software packages. It manages the hardships of -self-hosting for you. - -
- - - Install Castopod with YunoHost - - -Github -Repo - -
+ - Krouiñ kaout filmoù-v [requires FFmpeg] + (#optional-ffmpeg-v418-or-higher-for-video-clips \ No newline at end of file diff --git a/docs/src/br/getting-started/security.md b/docs/src/br/getting-started/security.md index e205698d..a4421f27 100644 --- a/docs/src/br/getting-started/security.md +++ b/docs/src/br/getting-started/security.md @@ -1,26 +1,23 @@ --- -title: Security +title: Gwiriadiad --- -# Security concerns +# Gwestiynau diogelwch -Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP -framework that encourages -[good security practices](https://codeigniter.com/user_guide/concepts/security.html). +Mae Castopod wedi'i ddatblygu ar [CodeIgniter4](https://codeigniter.com/), fframwaith PHP sy'n annog +[arddulliau diogelwch da](https://codeigniter.com/user_guide/concepts/security.html). -To maximize your instance's safety and prevent any malicious attack, we -recommend you update all your Castopod files permissions after installation or -updates (to avoid any prior permission error): +Er mwyn sicrhau diogelwch eich copi ac osgoi ymosodiadau drwg, rydym yn argymell i chi ddiweddaru hawliau'r ffeiliau yn Castopod ar ôl y gosod a phob diweddariad (ac osgoi unrhyw gamgymeriadau mynediad i'r ffeiliau) : -- `writable/` folder must be **readable** and **writable**. -- `public/media/` folder must be **readable** and **writable**. -- any other file must be set to **readonly**. +- Rhaid i'r ffolder `writable/` fod ar gael i **darllen** ac i **ysgrifennu**. +- Rhaid i'r ffolder `public/media/` fod ar gael i **darllen** ac i + **ysgrifennu**. +- Rhaid i unrhyw ffeil arall fod ar gael i **darllen yn unig**. -For instance, if you are using Apache or NGINX with Ubuntu you may do the -following: +Er enghraifft, os ydych chi'n defnyddio Apache neu NGINX gyda Ubuntu, gallwch gychwyn y gorchmynion canlynol: ```bash sudo chown -R root:root /path/to/castopod sudo chown -R www-data:www-data /path/to/castopod/writable sudo chown -R www-data:www-data /path/to/castopod/public/media -``` +``` \ No newline at end of file diff --git a/docs/src/br/getting-started/update.md b/docs/src/br/getting-started/update.md index 76668ae3..72ceec76 100644 --- a/docs/src/br/getting-started/update.md +++ b/docs/src/br/getting-started/update.md @@ -1,109 +1,99 @@ --- -title: Update +title: Hizivadennoù sidebarDepth: 3 --- -# How to update Castopod? +# Petra eo da ober evit Mont e Castopod ? -After installing Castopod, you may want to update your instance to the latest -version in order to enjoy the latest features ✨, bug fixes 🐛 and performance -improvements ⚡. +Goude mont e barzh Castopod, e c'hellit kas ar vosion diwezhañ da zizoloiñ ho stagad dre astenn ar sterenn/theurellec'hioù nevez ✨, ar sutrennoù bugoù 🐛 ha skoazellet profadurezhioù ⚡. -## Update instructions +## Hizivadennoù miz eo bet graet -0. ⚠️ Before any update, we highly recommend you backup your Castopod files and - database. +0. ⚠️ Da c'houzout a raio deoc'h heuliañ war da fardas keuz d'ar c'huzul war ho ficherien Castopod ha war ar bazenn roadennoù. - cf. - [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) + [Plesk a meur eus un war-lerc'h war lerc'hañ och e vo saveteiñ fenstr saveteiñ a-raok treiñ](#plesk-a-meur-eus-un-war-larsh-war-lerch-och-e-vo-savetei-fenstr-savetin-a-raok-trein) -1. Go to the - [releases page](https://code.castopod.org/adaures/castopod/-/releases) and - see if your instance is up to date with the latest Castopod version +1. Klikit war ar bajenn + [embannadegoù](https://code.castopod.org/adaures/castopod/-/releases) ha + gwelet setu ma vez savet ho stagad gant ar reizhiad nevezwezhañ Castopod - cf. - [Where can I find my Castopod version?](#where-can-i-find-my-castopod-version) + [Pelec'h e c'hellin kaout ho verzion Castopod ?](#pelech-e-chellin-kaout-ho-verzion-castopod) -2. Download the latest release package named `Castopod Package`, you may choose - between the `zip` or `tar.gz` archives +2. Prenniwit ar bitteg embannadur nevezwezhañ enoret `Castopod Package`, goude + e c'hallit dibunañ etre embannadurioù `zip` pe `tar.gz` - - ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code - - Note that you can also download the latest package from + - ⚠️ Bezit sur oc'h prenañ ar Castopod Package ha **NANN** ar C'hod Anaoudegezh. + - Abarzh e c'hallit prenañ ar bitteg nevezwezhañ eus [castopod.org](https://castopod.org/) -3. On your server: +3. War ho servijer : + - Dilemel an holl restr nevez en oberiant d'ar restr .env hag d'ar pub-/media - - Remove all files except `.env` and `public/media` - - Copy the new files from the downloaded package into your server + ::: info Notenn - ::: info Note - - You may need to reset files permissions as during the install process. - Check [Security Concerns](./security.md). + Gallet c'heller reiñ keveradur distrad-se war restr divyezhek warnañ ar + processus anthirdiñ. Gwelloc'h eo + [Strobellerezh](./security.md). ::: -4. Update your database schema from your `Castopod Admin` > `About` page or by - running: +4. Hizivaet ho tac'henn bazenn eus ho pajenn `Ger-tremen ar c'hastopod` ha `Ober` + pe drezañ: ```bash php spark castopod:database-update ``` -5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > - `Housekeeping` -6. ✨ Enjoy your fresh instance, you're all done! +5. Distrubañ gaelloù dor liveus ho c'hastopod eus ho pajenn `Ger-tremen ar + c'hastopod` > `Ardivink` > `Hentrol ar c'hoadoù`. +6. ✨ Kavit ho stagad nevez, pezet eo bet finyeah ! -::: info Note +::: info Notenn -Releases may come with additional update instructions (see -[releases page](https://code.castopod.org/adaures/castopod/-/releases)). +Gallet c'haller ober gant plijadur da vare ar vosioneoù (cf. +[Bladenn kasidañ embannadoù](https://code.castopod.org/adaures/castopod/-/releases)). - cf. - [I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do) + [N'ho mont ket da zougañ ho stadur abaoe un den na oa bet paketiget e ioa + finyeah ?](#nho-mont-ket-da-zouga-ho-stadur-abaoe-un-den-na-oa-bet-paketiget-e-ioa-finyeah) ::: -## Fully Automated updates +## Mechouerioù en un doare lazhek -> Coming soon... 👀 +> En ur bennach ... 👀 -## Frequently asked questions (FAQ) +## Goulennioù Frejal (FAQ) -### Where can I find my Castopod version? +### Pelec'h am c'haller kaout ho verzion Castopod ? -Go to your Castopod admin panel, the version is displayed on the bottom left -corner. +Klikit war ho c'huzul merdeiñ a vez skrivet e viz kentañ mennet war ho pannel merdeiñ +Castopod, e vez displeget e barzh an douarbenn gwerc'hentañ. -Alternatively, you can find the version in the `app > Config > Constants.php` -file. +Gellit kaout ur verzion arall e ruilhenn +`Holedoù > Kefluniou > Constants.php`. + +### N'ho mont ket da zougañ ho stadur evit ur forzh patromioù-termenet-mañ... Petra e fell deoc'h ober ? -### [I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do) +N'eo eus gwall geen ! Bezit sur mont da lavarout, hollek re ihti. +Prenit ar finyeah nevezizh eval mivioù skrivet warzu. Pa derit echuiñ urzelioù finyeah (4), oberit anezho urzhiañ, pedompenn diwar-benn an evorikoù ha goberiennioù finyeah. -No problem! Just get the latest release as described above. Only, when going -through the release instructions (4), perform them sequentially, from the oldest -to the newest. +> Bezit sur ho skalpiteiñ ho stadur adalek dater eo ho stadur nevezault Castopod. -> You may want to backup your instance depending on how long you haven't updated -> Castopod. +Er skouer, ma'z oc'h e `v1.0.0-alpha.42` hag oc'h ezhomm da guzumminañ evit dastum eus dastum da vroadañ bet leuniet e `v1.0.0-beta.1` : -For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to -`v1.0.0-beta.1`: +0. (hollek anavezet) Savetit ho ficherien ha bañdit ho bazenn roadennoù. -0. (highly recommended) Make a backup of your files and database. +1. Prenit ar verzion diwezhañ, greit mac'het ho ficherien hag e chom-hed ho .env hag ho pub-/media. -1. Download the latest release, overwrite your files whilst keeping `.env` and - `public/media`. +2. Stalit ar mivioù da zougañ war ar renk (dispar da diwar kreskiñ). -2. Go through each release update instructions sequentially (from oldest to - newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`, - `v1.0.0-alpha.45`, …, `v1.0.0-beta.1`. +3. ✨ Fellout a ra d'an novigezh ho nechal zo gant. -3. ✨ Enjoy your fresh instance, you're all done! +### Ha n'eo ket ret da vont da zougañ a-raok ? -### Should I make a backup before updating? +Kas a reomp deoc'h ho kas gantañ evit bezañ sur na gremañ ket ar pezh a c'hallfe bezañ gwisket gantoc'h-se ! -We advise you do, so you don't lose everything if anything goes wrong! - -More generally, we advise you make regular backups of your Castopod files and -database to prevent you from losing it all… +A-benn pell eo gortozet deoc'h kaout az canañ ho finyeah diwezhañ eus ho ficherien Castopod ha ho bazenn roadennoù er-maez evit na gremañt ket... \ No newline at end of file diff --git a/docs/src/br/index.md b/docs/src/br/index.md index 42ec8ed0..c11c4bee 100644 --- a/docs/src/br/index.md +++ b/docs/src/br/index.md @@ -2,298 +2,62 @@ sidebarDepth: 2 --- -# Welcome 👋 +# Degemer Mat 👋 [![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![stars-badge]][stars] -Castopod is a free & open-source hosting platform made for podcasters who want -engage and interact with their audience. +Kasit ul levraoueg da faotañ. Kevre an testenn. -Castopod is easy to install and was built on top of -[CodeIgniter4](https://codeigniter.com/), a powerful PHP framework with a very -small footprint. +Castopod eo ur pladenn digoust ha frank abaoe ars, bet savet evit ar podkasterien o fell dezho stlabeollañ ha dibab eus ozeud, un tamm postioù a roñv ha tagellads e brezhoneg. + +Divyezhek eo derc'hel gant Castopod hag en deus bet savet gant [CodeIgniter4](https://codeigniter.com/), ur perzhadenn PHP nerzhel disheñvel bras. -## Features +## Fonksionoù -- 🌱  Free & open-source (AGPL v3 License) -- 🔐  Focused on data sovereignty: your content, audience, and analytics - belong to you, and you only -- 🪄  Podcasting 2.0 features: GUID, locked, transcripts, funding, - chapters, location, persons, soundbites, … -- 💬  Built-in social network: - - 🚀  Castopod is part of the Fediverse, a decentralized social network - - ❤️  Create posts, share, favourite, and comment on episodes -- 📈  Built-in analytics: - - ⚖️  GDPR / CCPA / LGPD compliant - - 🪙  Standard IABv2 audience measurement - - 🏡  On-premises analytics, no third party involved -- 📢  Built-in marketing tools: - - ✅  SEO ready (open-graph meta-tags, JSON-LD, …) - - 📱  PWA: install as a standalone app - - 🎨  Customizable theme colors - - 🎬  Generate ready-to-share Video clips from episodes - - 🔉  Generate soundbites - - ▶️  Embeddable player, embed your episodes on any website -- 💸  Monetization: - - 🔗  Funding links - - 📲  listen-to-click ads - - 🤝  value4value / WebMonetization - - 💎  Premium podcasts -- 📡  Publish your episodes everywhere with RSS: - - 📱  On all indexes and apps: Podcast Index, Apple Podcasts, Spotify, - Google Podcasts, Deezer, Podcast Addict, Podfriend, … - - ⚡  Broadcast your episodes instantly with WebSub -- 📥  Podcast import: move your existing podcast into Castopod -- 📤  Move your podcast out of Castopod -- 🔀  Multi-tenant: host as many podcasts as you want -- 👥  Multi-user: add contributors and set roles -- 🌎  i18n support: translated in English, French, Polish, German, - Brazilian Portuguese & Spanish… with - [more to come](https://translate.castopod.org)! +- 🌱  Digoust, frank ha digor-sourzh (Darvoudiezh AGPL v3) +- 🔐  dedennet gant suverenerezh ar roadennoù : ho kontinim, ho dudoc'h hag ho statistikoù a zo deoc'h, hag deoc'h hepken +- 🪄  Fonksionoù al Lodkamantoù 2.0 : GUID, diorren, disterrañvioù, sourn, kempennadurioù, lec'h, denierezourien, prezegennoù sonorez… +- 💬  Etrezhek gant ar reozerezh enni : + - 🚀  Castopod zo diwar-benn ar Fédivers, un Embannerezh estren peurunvan + - ❤️  Krouiñ postioù, rannañ, mizkeañ ha komz eus oaudioù +- 📈  Statistikoù chomlec'hiet enni : + - ⚖️  Ovezhañ GDPR / CCPA / LGPD + - 🪙  Mens gellet Iveziñ IABv2 + - 🏡  Meur a statistikoù chomet unan ha na vezont na lod ha na daveont na politikourez anavezet +- 📢  [Outils de marketing intégrés : + - ✅  -  Pret evit ar SEO (méta-tags open-graph, JSON-LD…) + - 📱  -  PWA : stockeziñ evel ur meziant nemetañ + - 🎨  -  Urzhioù hiriadur en tu-deoc'h + - 🎬  -  Krouiñ da videoioù erfin dirak epeoù + - 🔉  -  Krouiñ deoc'h prezegennoù sonorez + - ▶️  -  Adkrouiñ ho evererezhioù er pros web nevez +- 💸  Tansevel : + - 🔗  -  Liennoù tansevel + - 📲  -  publomm + - 🤝  -  value4value / WebMonetization + - 💎  -  Ploedadoù prevez +- 📡  Adpubliañ ho levrer e-barzhstra gant RSS : + - 📱  -  d'an holl doareoù peadra da bec'h renerrezhioù Pazenn Kaeoù, Apple, Spotify, Google Podcasts, Deezer, Podcast Addict, Podfriend… + - ⚡  -  Staliñ o sammerezh diraklañ gant WebSub +- 📥  [Air importin ho podcast : stleellañ ho podcast dija enrollañ gant Castopod +- 📤  -  Deuset eo e-unan evit mont ho levrer da lodenn all +- 🔀  Miltadañ + - 👥  -  Bevañ e-lec'hiezh a-stroll ho peadra, lakaet rener peiñ ho badeier + - 🌎  -  souten al lang : latin, galleg, brazilian, poloneg, aodoù math ha saozneg, hag en deiz-ermo… + - [bevet all eus un deiz](https://translate.castopod.org)! -## Motivation +## Perak kasout da implijout Castopod ? -The podcasting ecosystem is decentralized by nature: you can create your podcast -as an RSS file, publish it on the web and have it shared everywhere online. +Pe hor beajo un implijenn nemetañ evit pep den, eus ar pezh a rit stummiñ. C'hoant hor beajo e vez atav adunvanet dre hor c'hemeradur. -It is in fact one of the only media to have stayed this way for a long time. +Dreist-holl, e vez kenlabourat dreist pep araok primodiñ Castopod eus o bred. Skoazellañ primzivoù peo & digor-sourzh eo Castopod bet savet evit da gentañ anavezout o seurt heol. Re o deus bet disheñvel en armeziadur roadennoù e-pad un nebeut bloazioù, ha ne dremen ket faoudel. -As usages are evolving, more and more people are getting into podcasts: whether -it is creators finding new ways to share their ideas, or listeners in the search -for better content. +Kenavo, pa fell dezho ivez pellaat astenn ar sistem naosiek, e tennañ a reont anaoudegezh re'en em **1) WordPress & Castopod 2) Funkwhale & Castopod 3) Brandenn all da gaout ar postev dudualeg abegoù. Castopod eo ur ger anvioñ bras dirak Radiofrancolonia alies WordPress evit ar postev-time. Ne vira ket eo bet siviliaet gant parregeoù modallenn alies WordPress met n'eo ket bet disheñchegeat "Delestrañ" arouezh ar poellandouriezh, hini a c'hourivupl e krouerlez varrogezh al levrer a oa bet savet evit kasout ho doareoù renet d'ar-walc'h en dermen e voent mat. -With podcasting becoming more widely used, some companies are trying to shift it -towards a more controlled and centralized medium. +N'eo ket bet gebraet war-dro " WordPress " ez eo bet krouet Castopod troata alies ivez gant parregeoù gant straedoù trainkeg ar vezvel er bed arz -ni, gouzout ho komzoù dre enor -noz e c'hortozo, abegoù dre veter loened -bu-heol adnumet. ni a zo bet tryoulet gant ar sistem sweat.Seurt disheñvel en hor predermit ! -Castopod was created in an effort to provide an open and sustainable alternative -to hosting your podcasts, promoting decentralization to ensure that podcasters -creativity can express itself. - -This project is pushed by the open-source community, and specifically by the -[Fediverse](https://fediverse.party/en/fediverse/) and -[Podcasting 2.0](https://podcastindex.org/) movements. - -## Comparison with other solutions - -We believe that a solution is not necessarily right for everyone, it highly -depends on your needs. So, here are comparisons with other tools to help you to -gauge whether Castopod is the right fit for you. - -### Castopod vs Wordpress - -Castopod is often referred to as "the Wordpress for podcasts" because of the -similarities between the two. In some ways this is true. And actually, Castopod -was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption -from the community and the number of websites running it. - -Just like Wordpress, Castopod is free & open source, built using PHP with a -MySQL database and is packaged in a way that you can easily install on most web -servers. - -Wordpress is a great way to create your website and extend it with plugins to -get what you want. It is a full fledged CMS that helps you get any type of -website online. - -On the other hand, Castopod is meant to address the podcasters needs -specifically, focusing on podcasting, and nothing else. You don't need any -plugin to get you started on your podcasting journey. - -This allows optimizing the processes specific to podcasting: ranging from the -creation of your podcasts and the publication of new episodes all the way to -broadcasting, marketing and analytics. - -Finally, depending on your needs, Wordpress and Castopod can even live side by -side as they share the same requirements! - -### Castopod vs Funkwhale - -Funkwhale is a self-hosted, modern free and open-source music server. Just as -Castopod, Funkwhale is on the fediverse, a decentralized social network allowing -interoperability between the two. - -Funkwhale was initially built around music. And later on, as the project -evolved, the ability to host podcasts was introduced. - -Unlike Funkwhale, Castopod has been designed and built around podcasting -exclusively. This allows easier implementation for features related to the -podcasting ecosystem, such as the podcasting 2.0 features (transcripts, -chapters, locations, persons, …). - -So, you should probably use Funkwhale if you want to host your music, and use -Castopod if you want to host your podcasts. - -### Castopod vs other podcast hosts - -There are many solutions for you to host your podcasts, some of which are really -great and [a lot of them](https://podcastindex.org/apps) are jumping into the -Podcasting 2.0 wagon just like Castopod! - -Each of these solutions differ from one another, you may compare with the -[list of features](#features). - -That being said, there are two main differences with other podcasting solutions: - -- Castopod can be self-hosted and is the only solution that allows you to keep - full control over what you produce. Also, as it is open-source, you can even - customize it as you wish. - -- Castopod is the only solution that currently integrates both a decentralized - social network with ActivityPub as well as many of the podcasting 2.0 - features, hoping to bridge the gap between the two. - -## Contributing - -Love Castopod and would like to help? Take a look at the following documentation -to get you started. - -### Code of conduct - -Castopod has adopted a Code of Conduct that we expect project participants to -adhere to. Please read the -[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md) -so that you can understand what actions will and will not be tolerated. - -### Contributing guide - -Read our [contributing guide](./contributing/guidelines.md) to learn about our -development process, how to propose bugfixes and improvements, and how to build -and test your changes to Castopod. - -## Contributors ✨ - -Thanks goes to these wonderful people -([emoji key](https://allcontributors.org/docs/en/emoji-key)): - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Yassine Doghri
Yassine Doghri

💻 🐛 📖 👀 🚧 🖋 🎨 ️️️️♿️ 🌍 💬 🧑‍🏫 🚇 🤔 📆 📝
Benjamin Bellamy
Benjamin Bellamy

💻 🐛 👀 🖋 🌍 💬 🚇 🤔 📝 📆 📢
Ola Hneini
Ola Hneini

💻 👀 📖 🚧 💬 🤔
Romain de Laage
Romain de Laage

💻 🚇 📖 🌍 🤔
Lyonel Bernard
Lyonel Bernard

🐛 💬 🔊 🤔
Christopher Lagonick-Weitzel
Christopher Lagonick-Weitzel

🐛 💬 🔊 🤔
Ernesto Acosta
Ernesto Acosta

🐛 🔊 🌍 💬 🤔
Bastien Luneteau
Bastien Luneteau

💻 🐛
Cécile Ricordeau
Cécile Ricordeau

🎨
Patryk Miś
Patryk Miś

🌍
Marcin Lewandowski
Marcin Lewandowski

🐛 🤔
Sebastian Janik
Sebastian Janik

💻
Patryk Karczmarczyk
Patryk Karczmarczyk

💻
denis d
denis d

🐛 🤔
Douglas Kastle
Douglas Kastle

🐛 🤔
cExplorer
cExplorer

🐛 🌍
ImaCrea
ImaCrea

🐛 🤔
Jonas S
Jonas S

💻
LEFEBVRE Yann
LEFEBVRE Yann

🐛
Sebastian Späth
Sebastian Späth

🐛 🤔
rocky III
rocky III

🐛
Hermann Josef Eckl
Hermann Josef Eckl

🐛
Delhaye Cyrille
Delhaye Cyrille

🐛 🤔
João Leandro
João Leandro

🌍 🤔
Angelos Chouvardas
Angelos Chouvardas

🌍
Eivind
Eivind

🌍
Ewen
Ewen

🌍 🤔
forght
forght

🌍
glottis0q
glottis0q

🌍
ButterflyOfFire
ButterflyOfFire

🌍
Lucian I. Last
Lucian I. Last

🌍
LuuzViir
LuuzViir

🌍
CTHTC
CTHTC

🌍
Russian Retro
Russian Retro

🌍
Marek L'ach
Marek L'ach

🌍
GunChleoc
GunChleoc

🌍
GabiSnow
GabiSnow

🌍
bendaha
bendaha

🌍
Samuel Roland
Samuel Roland

🌍
Dimitri Regnier
Dimitri Regnier

🤔
irithys
irithys

🌍
Sergi
Sergi

🌍
ghose (XoseM)
ghose (XoseM)

🌍
Andreas Olsson
Andreas Olsson

🌍
leonfrom
leonfrom

🌍
agentcobra
agentcobra

🌍
Alessandro
Alessandro

🌍
liimee
liimee

🌍
Ahmed Sabouni
Ahmed Sabouni

🌍
KrzysztofDomanczyk
KrzysztofDomanczyk

💻
- - - - - - -This project follows the -[all-contributors](https://github.com/all-contributors/all-contributors) -specification. Contributions of any kind welcome! - -## Contact - -You may reach us for help or ask any question you have on: - -- [Discord](https://castopod.org/discord) (for direct interaction with - developers and the community) -- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for - feature requests & bug reports) - -Alternatively, you can follow us on social media platforms to get news about -Castopod: - -- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance) -- [Twitter](https://twitter.com/castopod) -- [LinkedIn](https://linkedin.com/company/castopod) -- [Facebook](https://www.facebook.com/castopod) - -## Sponsors - -The ongoing development of Castopod is made possible with the support of its -backers. If you'd like to help, please consider -[sponsoring Castopod's development](https://opencollective.com/castopod/contribute). - -
- Ad Aures Logo - NLnet Logo -
- -## License - -[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/) - -Copyright © 2020-present, [Ad Aures](https://adaures.com/). -https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release -https://img.shields.io/github/license/ad-aures/castopod?color=blue -https://img.shields.io/badge/contributions-welcome-brightgreen.svg -https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg -https://img.shields.io/github/stars/ad-aures/castopod?style=social - -[release]: https://code.castopod.org/adaures/castopod/-/releases -[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md -[contributions]: https://code.castopod.org/adaures/castopod/-/issues -[semantic-release]: https://github.com/semantic-release/semantic-release -[discord]: https://castopod.org/discord -[stars]: https://github.com/ad-aures/castopod/stargazers -[crowdin]: https://translate.castopod.org/project/castopod +Kerkent a-walc'h, dedenn a-wechoù, WordPress ha Castopod a c'hello beilhaduff kasout hevken petra kar kasit gant an erioù gouel devil. Harriet etre ar roadennoù warc'hoazh  (WordPress ha Castopod) etre ho ero evit kasout ho postoùda-uriĔ a-bezh da vüzioùda a vo troeet dezho edaneg mynajioù en oreuñv ur gw \ No newline at end of file diff --git a/docs/src/ca/contributing/_category_.json b/docs/src/ca/contributing/_category_.json new file mode 100644 index 00000000..32042b3e --- /dev/null +++ b/docs/src/ca/contributing/_category_.json @@ -0,0 +1,4 @@ +{ + "etiqueta": "Contribució", + "posició": 3 +} \ No newline at end of file diff --git a/docs/src/ca/contributing/guidelines.md b/docs/src/ca/contributing/guidelines.md new file mode 100644 index 00000000..2abd7f22 --- /dev/null +++ b/docs/src/ca/contributing/guidelines.md @@ -0,0 +1,133 @@ +--- +title: Pautas +--- + +# Contribuir a Castopod + +Estimes Castopod i vols ajudar? Moltes gràcies, hi ha moltes coses per fer per a tothom! + +Si us plau, prende't un moment per revisar aquest document per fer que el procés de contribució sigui fàcil i efectiu per a totes les parts implicades. + +Seguint aquestes pautas, ajudes a comunicar el teu respecte pel temps dels desenvolupadors que gestionen i desenvolupen aquest projecte de codi obert. A canvi, ells han de mostrar aquest respecte en atendre els teus problemes o avaluar les correccions i les noves funcionalitats. + +::: info Nota + +**Qualsevol** contribució realitzada en un repositori diferent al +[repositori original](https://code.castopod.org/adaures/castopod) no serà +acceptada. + +::: + +## Utilitzar el seguiment de problemes + +El [seguiment de problemes](https://code.castopod.org/adaures/castopod/-/issues) és el canal preferit per a informar de +[informes de errors](#informes-de-errors), +[sol·licituds de funcionalitats](#sol·licituds-de-funcionalitats) i +[enviar sol·licituds de pull](#sol·licituds-de-pull). + +## ⚠️ Problemes de seguretat i vulnerabilitats + +Si et trobes amb algun problema de seguretat o vulnerabilitat en el codi font de Castopod, contacta'ns directament per correu electrònic a +[security@castopod.org](mailto:security@castopod.org). + +## Informes de errors + +Un error és un _problema demostrable_ causat pel codi del repositori. Els informes de errors bons són extremadament útils, gràcies! + +Pautas per als informes de errors: + +1. **Utilitza la cerca de problemes** — comprova si el problema ja ha estat + reportat. + +2. **Verifica si el problema ha estat resolt** — intenta reproduir-lo utilitzant + l'últim `main` del repositori. + +3. **Aïlla el problema** — idealment, crea un + [cas de prova reduït](https://css-tricks.com/reduced-test-cases/) i un exemple en viu. + +Un bon informe d'errors no hauria de deixar als altres necessitant preguntar-te més +informació. Intenta ser tan detallat com sigui possible en el teu informe. Quin és el teu entorn? Quins passos reproducirien el problema? Quin navegador(s) i sistema operatiu experimenten el problema? Què esperaries que fos el resultat? Tots aquests detalls ajudaran a les persones a solucionar qualsevol error potencial. + +> Han estat creats [models d'incidències](https://docs.gitlab.com/ee/user/project/description_templates.html#using-the-templates) +> per aquest projecte. Pots utilitzar-los per ajudar-te a seguir aquestes pautes. + +## Sol·licituds de funcionalitats + +Les sol·licituds de funcionalitats són benvingudes. Però dedica un moment a comprovar si la teva idea encaixa amb l'abast i els objectius del projecte. Depèn de _tu_ de fer un cas sòlid per convèncer els desenvolupadors del projecte de les virtuts d'aquesta funcionalitat. Si us plau, proporciona tanta informació i context com sigui possible. + +## Sol·licituds de pull + +Les sol·licituds de pull bones: correccions, millores, noves funcionalitats, són una gran ajuda. Han de romandre centrades en l'abast i evitar contindre commits no relacionats. + +**Si us plau, pregunta primer** abans d'emprendre qualsevol sol·licitud de pull important (per exemple, implementar funcionalitats, refactoritzar el codi, portar-lo a un llenguatge diferent), sinó et jugues de treballar molt temps en alguna cosa que els desenvolupadors del projecte poden no voler fusionar. + +Si us plau, adhereix-te a les convencions de codificació utilitzades en tot el projecte (indentació, comentaris precisos, etc.) i a qualsevol altre requisit (com cobertura de proves). + +Adherir-te al següent procés és la millor manera d'incloure la teva feina al projecte: + +1. [Fork](https://docs.gitlab.com/ee/gitlab-basics/fork-project.html) del projecte, + clona la teva forquilla i configura els remots: + +```bash +# Clona la teva forquilla del repositori a l'actual directori +git clone https://code.castopod.org//castopod.git + +# Navega fins al directori clonat més nou +cd castopod + +# Assigna el repositori original a un remot anomenat "upstream" +git remote add upstream https://code.castopod.org/adaures/castopod.git +``` + +2. Si vas fer aquesta clonació fa temps, obtén els canvis més recents de l'origen: + +```bash +git checkout main +git pull upstream main +``` + +3. Crea una nova branca de tema (d'una branca `main`) per contenir la teva funcionalitat, + canvi o correcció: + +```bash +git checkout -b +``` + +4. Fa els teus canvis en trossos lògics. Si us plau, segueix aquestes + [pautes de missatge de confirmació de Git](https://conventionalcommits.org/), o el teu + codi és poc probable que es fusioni amb el projecte principal. Utilitza la + característica de + [rebase interactiu de Git](https://help.github.com/articles/about-git-rebase/) + per netejar les teves confirmacions abans de fer-les públiques. + +5. Fusiona localment (o rebase) la branca de desenvolupament d'origen amb la teva branca de tema: + +```bash +git pull [--rebase] upstream main +``` + +6. Puja la teva branca de tema a la teva forquilla: + +```bash +git push origin +``` + +7. [Obre una sol·licitud de pull](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html#new-merge-request-from-a-fork) + amb un títol clar i una descripció. + +**IMPORTANT**: En enviar un patch, acceptes permetre als propietaris del projecte +llicenciar el teu treball sota els termes de +[GNU AGPLv3](https://code.castopod.org/adaures/castopod/-/blob/main/LICENSE). + +## Pautas de col·laboració + +Hi ha algunes regles bàsiques per assegurar una alta qualitat del projecte: + +- Abans de fusionar, una sol·licitud de pull requereix com a mínim dues aprovacions dels col·laboradors + a no ser que sigui un canvi arquitectònic, una funcionalitat important, etc. Si ho és, aleshores + ha de ser aprovada per almenys el 50% de l'equip principal, amb dret a veto complet. (és a dir, cada membre pot bloquejar qualsevol PR) +- Una sol·licitud de pull ha de romandre oberta com a mínim dos dies abans de fusionar (no s'aplica + per aportacions banals com arreglar una errada tipogràfica). D'aquesta manera, tothom té prou + temps per revisar-la. + +Sempre ets benvingut a discutir i proposar millores per aquestes pautes. \ No newline at end of file diff --git a/docs/src/ca/contributing/setup-development.md b/docs/src/ca/contributing/setup-development.md new file mode 100644 index 00000000..e98c5531 --- /dev/null +++ b/docs/src/ca/contributing/setup-development.md @@ -0,0 +1,134 @@ +--- +title: Configuració del desenvolupament +sidebarDepth: 3 +--- + +# Configura l'entorn de desenvolupament + +## Introducció + +Castopod és una aplicació web basada en el marc de treball `php` +[CodeIgniter 4](https://codeigniter.com). + +Utilitzem [Docker](https://www.docker.com/) per configurar ràpidament un entorn de desenvolupament. Un +`docker-compose.yml` i un `Dockerfile` s'inclouen a la carpeta arrel del projecte +per ajudar-vos a iniciar la vostra contribució. + +> No és necessari tenir coneixements previs de Docker per seguir els següents passos. +> No obstant això, si voleu utilitzar el vostre propi entorn, podeu fer-ho! + +## Instruccions de configuració + +### 1. Prerequisits + +0. Instal·la [docker](https://docs.docker.com/get-docker). + +1. Clona el projecte Castopod executant: + + ```bash + git clone https://code.castopod.org/adaures/castopod.git + ``` + +2. Crea un fitxer `.env` amb la configuració mínima necessària per connectar l'aplicació a la base de dades i utilitzar Redis com a controlador de memòria cau: + + ```ini + CI_ENVIRONMENT="development" + # Si s'estableix a "development", cal executar `npm run dev` per iniciar el servidor d'actius estàtics + vite.environment="development" + + # Per defecte, això està establert a true a la configuració de l'aplicació. + # Per al desenvolupament, s'ha d'establir a false ja que està + # en un entorn local + app.forceGlobalSecureRequests=false + + app.baseURL="http://localhost:8080/" + media.baseURL="http://localhost:8080/" + + admin.gateway="cp-admin" + auth.gateway="cp-auth" + + database.default.hostname="mariadb" + database.default.database="castopod" + database.default.username="castopod" + database.default.password="castopod" + + cache.handler="redis" + cache.redis.host = "redis" + + # Potser no voleu utilitzar Redis com a controlador de memòria cau + # Comenteu o elimineu les dues línies anteriors i descomenteu + # la següent línia per utilitzar el controlador de fitxers en memòria cau. + # cache.handler="file" + ``` + + > _NB._ Podeu ajustar el vostre entorn establint més variables d'entorn + > en el fitxer `.env` personalitzat. Consulteu l'`env` per obtenir exemples o el + > [Manual de l'usuari de CodeIgniter4](https://codeigniter.com/user_guide/index.html) + > per obtenir més informació. + +3. (per a l'escritori Docker) Afegiu el repositori que heu clonat a `Configuració` de l'escritori Docker > `Recursos` > `Compartició de fitxers` + +### 2. (recomanat) Desenvolupeu dins del contenidor de l'aplicació amb VSCode + +Si esteu treballant a VSCode, podeu aprofitar la carpeta `.devcontainer/`. +Defineix un entorn de desenvolupament (contenidor de desenvolupament) amb requeriments preinstal·lats +i extensions de VSCode perquè no hàgiu de preocupar-vos per aquests. Tots els serveis +necessaris es carregaran automàticament! 🪄 + +1. Instal·leu l'extensió de VSCode + [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) +2. `Ctrl/Cmd + Shift + P` > `Obrir a dins del contenidor` + + > La finestra de VSCode es recarregarà a l'interior del contenidor de desenvolupament. Espereu diversos + > minuts durant la primera càrrega ja que està construint tots els serveis necessaris. + + **Nota**: El contenidor de desenvolupament s'iniciarà executant el servidor php de Castopod. + Durant el desenvolupament, haureu d'iniciar el servidor de desenvolupament de [Vite](https://vitejs.dev) + per compilar el codi typescript i els estils: + + ```bash + # executa el servidor de desenvolupament de Vite + npm run dev + ``` + + Si hi ha algun problema amb el servidor php no s'està executant, podeu reiniciar-lo + utilitzant les següents comandes: + + ```bash + # executa el servidor Castopod + php spark serve - 0.0.0.0 + ``` + +3. Ja esteu llest! 🎉 + + Ara esteu **al dins del contenidor de desenvolupament**, podeu utilitzar la consola de VSCode + (`Terminal` > `Terminal nou`) per executar qualsevol comanda: + + ```bash + # PHP està instal·lat + php -v + + # Composer està instal·lat + composer -V + + # npm està instal·lat + npm -v + + # git està instal·lat + git version + ``` + +Per obtenir més informació, consulteu +[VSCode Remote Containers](https://code.visualstudio.com/docs/remote/containers) + +### 3. Comença a treballar + +Ja esteu llestos! Comenceu a fer màgia actualitzant els fitxers del projecte! Ajudeu-vos del +[Manual de l'usuari de CodeIgniter4](https://codeigniter.com/user_guide/index.html) per obtenir més informació. + +Per veure els vostres canvis, aneu a: + +- `http://localhost:8080/` per a l'aplicació Castopod +- `http://localhost:8888/` per a la interfície phpmyadmin: + + - nom d'usuari: ** \ No newline at end of file diff --git a/docs/src/ca/getting-started/_category_.json b/docs/src/ca/getting-started/_category_.json new file mode 100644 index 00000000..987b55bd --- /dev/null +++ b/docs/src/ca/getting-started/_category_.json @@ -0,0 +1,4 @@ +{ + "etiqueta": "Començant", + "posició": 2 +} \ No newline at end of file diff --git a/docs/src/ca/getting-started/auth.md b/docs/src/ca/getting-started/auth.md index 4a873da4..3352b8a5 100644 --- a/docs/src/ca/getting-started/auth.md +++ b/docs/src/ca/getting-started/auth.md @@ -3,85 +3,84 @@ title: Autenticació i Autorització sidebarDepth: 3 --- -# Authentication & Authorization +# Autenticació i Autorització -Castopod handles authentication and authorization using `codeigniter/shield` -coupled with custom rules. Roles and permissions are defined at two levels: +Castopod gestiona l'autenticació i l'autorització utilitzant `codeigniter/shield` amb regles personalitzades. Els rols i les autoritzacions es defineixen a dos nivells: -1. [instance wide](#1-instance-wide-roles-and-permissions) -2. [per podcast](#2-per-podcast-roles-and-permissions) +1. [A nivell d'instància](#1-roles-i-autoritzacions-a-nivell-dinstancia) +2. [Per podcast](#2-roles-i-autoritzacions-per-podcast) -## 1. Instance wide roles and permissions +## 1. Rols i autoritzacions a nivell d'instància -### Instance roles +### Rols a l'instància -| role | description | permissions | -| ----------- | ----------------------------------- | ------------------------------------------------------------------------------------------ | -| Super admin | Has complete control over Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks | -| Manager | Manages Castopod's content. | podcasts.create, podcasts.import, persons.manage, pages.manage | -| Podcaster | General users of Castopod. | admin.access | +| rol | descripció | autoritzacions | +| -------------- | ----------------------------------- | ------------------------------------------------------------------------------------------ | +| Super admin | Té un control complet sobre Castopod | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks | +| Gestor | Gestiona el contingut de Castopod | podcasts.create, podcasts.import, persons.manage, pages.manage | +| Podcaster | Usuaris generals de Castopod | admin.access | -### Instance permissions +### Autoritzacions a l'instància -| permission | description | -| ----------------------- | ------------------------------------------------------------------ | -| admin.access | Can access the Castopod admin area. | -| admin.settings | Can access the Castopod settings. | -| users.manage | Can manage Castopod users. | -| persons.manage | Can manage persons. | -| pages.manage | Can manage pages. | -| podcasts.view | Can view all podcasts. | -| podcasts.create | Can create new podcasts. | -| podcasts.import | Can import podcasts. | -| fediverse.manage-blocks | Can block fediverse actors/domains from interacting with Castopod. | +| autorització | descripció | +| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | +| admin.access | Pot accedir a la zona d'administració de Castopod. | +| admin.settings | Pot accedir a la configuració de Castopod. | +| users.manage | Pot gestionar els usuaris de Castopod. | +| persons.manage | Pot gestionar les persones. | +| pages.manage | Permet gestionar les pàgines. | +| podcasts.view | Pot veure tots els podcasts. | +| podcasts.create | Pot crear nous podcasts. | +| podcasts.import | Pot importar podcasts. | +| fediverse.manage-blocks | Pot bloquejar actors o dominis de la fediverse per interactuar amb Castopod. | -## 2. Per podcast roles and permissions +## 2. Rols i autoritzacions per podcast -### Per podcast roles +### Rols per podcast -| role | description | permissions | -| ------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Admin | Has complete control of podcast #{id}. | \* | -| Editor | Manages content and publications of podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments | -| Author | Manages content of podcast #{id} but cannot publish them. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips | -| Guest | General contributor of the podcast #{id}. | view, episodes.view | +| rol | descripció | autoritzacions | +| ---------- | -------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Admin | Té control total sobre el podcast #{id} | \* | +| Editor | Gestiona el contingut i les publicacions del podcast #{id} | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments | +| Autor | Gestiona el contingut del podcast #{id}, però no el pot publicar | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips | +| Convidat | Col·laborador general del podcast #{id} | view, episodes.view | -### Per podcast permissions +### Autoritzacions per podcast -| permission | description | -| ---------------------------- | ------------------------------------------------------------------------ | -| view | Can view dashboard and analytics of podcast #{id}. | -| edit | Can edit podcast #{id}. | -| delete | Can delete podcast #{id}. | -| manage-import | Can synchronize imported podcast #{id}. | -| manage-persons | Can manage subscriptions of podcast #{id}. | -| manage-subscriptions | Can manage subscriptions of podcast #{id}. | -| manage-contributors | Can manage contributors of podcast #{id}. | -| manage-platforms | Can set/remove platform links of podcast #{id}. | -| manage-publications | Can publish podcast #{id}. | -| manage-notifications | Can view and mark notifications as read for podcast #{id}. | -| interact-as | Can interact as the podcast #{id} to favourite, share or reply to posts. | -| episodes.view | Can view dashboard and analytics of podcast #{id}. | -| episodes.create | Can create episodes for podcast #{id}. | -| episodes.edit | Can edit podcast #{id}. | -| episodes.delete | Can delete podcast #{id}. | -| episodes.manage-persons | Can manage subscriptions of podcast #{id}. | -| episodes.manage-clips | Can manage video clips or soundbites of podcast #{id}. | -| episodes.manage-publications | Can publish podcast #{id}. | -| episodes.manage-comments | Can create/remove episode comments of podcast #{id}. | - - +| autorització | descripció | +| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| veure | Visualització del tauler de control i l'anàlisi del podcast #{id}. | +| editar | Pot editar el podcast #{id}. | +| eliminar | Pot eliminar el podcast #{id}. | +| gestionar importacions | Pot sincronitzar el podcast importat #{id}. | +| gestionar persones | Permet gestionar les subscripcions al podcast #{id}. | +| gestionar subscripcions | Permet gestionar les subscripcions al podcast #{id}. | +| gestionar col·laboradors | Permet gestionar els col·laboradors del podcast #{id}. | +| gestionar plataformes | Pot configurar/eliminar els enllaços a les plataformes del podcast #{id}. | +| gestionar publicacions | Pot publicar el podcast #{id}. | +| gestionar notificacions | Pot veure i marcar les notificacions com a llegides per al podcast #{id}. | +| interactuar com a | Pot interactuar com a podcast #{id} per afegir, compartir o respondre missatges. | +| episodes.view | Pot veure el tauler de control i l'anàlisi del podcast #{id}. | +| crear episodis | Pot crear episodis per al podcast #{id}. | +| editar episodis | Pot editar el podcast #{id}. | +| eliminar episodis | Pot eliminar el podcast #{id}. | +| episodes.manage-persons | Permet gestionar les subscripcions al podcast #{id}. | +| episodes.manage-clips | Permet gestionar clips de vídeo o parts sonores del podcast #{id}. | +| episodes.manage-publications| Pot publicar el podcast #{id}. | +| episodes.manage-comments | Pot crear/eliminar comentaris de l'episodi del podcast #{id}. | + + \ No newline at end of file diff --git a/docs/src/ca/getting-started/docker.md b/docs/src/ca/getting-started/docker.md index d8a6e91b..73eab8d0 100644 --- a/docs/src/ca/getting-started/docker.md +++ b/docs/src/ca/getting-started/docker.md @@ -1,35 +1,29 @@ --- -title: Imatges Docker oficials +title: Imatges oficials de Docker sidebarDepth: 3 --- -# Imatges Docker oficials +# Imatges oficials de Docker -Castopod pushes 3 Docker images to the Docker Hub during its automated build -process: +Castopod envia 3 imatges Docker al Hub de Docker durant el seu procés de construcció automàtica: -- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): an all - in one castopod image using nginx unit -- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): el paquet - incloent Castopod i totes les dependències -- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): una - configuració de Nginx per a Castopod +- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): una imatge de Castopod tot en un utilitzant Nginx Unit +- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): el paquet d'aplicació amb totes les dependències de Castopod +- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): una configuració de Nginx per a Castopod -A més, Castopod requereix una base de dades compatible amb MySQL. Es pot afegir -una base de dades Redis com a gestor de memòria cau. +A més, Castopod requereix una base de dades compatible amb MySQL. Es pot afegir una base de dades Redis com a gestor de memòria cau. -## Etiquetes compatibles +## Tags compatibles -- `develop` [no-estable], darrera versió de la branca de desenvolupament -- `beta` [stable], latest beta version build -- `latest` [stable], latest version build -- `1.x.x` [stable], specific version build (since `1.0.0`) +- `develop` [inestable], última versió de la branca de desenvolupament +- `beta` [estable], última versió beta +- `1.x.x` [estable], versió específica (a partir de `1.0.0`) ## Exemple d'ús -1. Instal·leu [docker](https://docs.docker.com/get-docker/) i +1. Instal·la el [docker](https://docs.docker.com/get-docker/) i el [docker-compose](https://docs.docker.com/compose/install/) -2. Creeu un fitxer `docker-compose.yml` amb el següent: +2. Crea un fitxer `docker-compose.yml` amb el següent contingut: ```yml version: "3.7" @@ -87,15 +81,12 @@ una base de dades Redis com a gestor de memòria cau. castopod-db: ``` - Heu d'adaptar algunes variables a les vostres necessitats (per exemple, - `CP_BASEURL`, `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` i - `CP_ANALYTICS_SALT`). + Has d'adaptar algunes variables segons les teves necessitats (p. ex., `CP_BASEURL`, + `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` i `CP_ANALYTICS_SALT`). -3. Configureu un `reverse proxy` per a TLS (SSL/HTTPS) +3. Configura un servidor proxy invers per a TLS (SSL/HTTPS) - TLS és obligatori perquè ActivityPub funcioni. Aquest feina es pot gestionar - fàcilment amb un `reverse proxy`, per exemple amb - [Caddy](https://caddyserver.com/): + TLS és obligatori per a què funcioni ActivityPub. Aquesta tasca es pot gestionar fàcilment mitjançant un servidor proxy invers, per exemple amb [Caddy](https://caddyserver.com/): ``` #castopod @@ -104,57 +95,58 @@ una base de dades Redis com a gestor de memòria cau. } ``` -4. Executeu `docker-compose up -d`, espereu que s'inicialitzi i aneu a - `https://castopod.exemple.com/cp-install` per acabar de configurar Castopod! +4. Executa `docker-compose up -d`, espera que s'inicialitzi a + `https://castopod.example.com/cp-install` per finalitzar la configuració de + Castopod! -5. Ja esteu a punt, podeu començar a fer podcasts! 🎙️🚀 +5. Estàs llest, comença a publicar podcasts! 🎙️🚀 ## Variables d'entorn -- **castopod/castopod** and **castopod/app** +- **castopod/castopod** i **castopod/app** - | Nom de la variable | Tipus (`default`) | Default | - | ------------------------------------- | ----------------------- | ---------------- | - | **`CP_BASEURL`** | string | `undefined` | - | **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` | - | **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` | - | **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` | - | **`CP_ANALYTICS_SALT`** | string | `undefined` | - | **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` | - | **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` | - | **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` | - | **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` | - | **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` | - | **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` | - | **`CP_REDIS_HOST`** | ?string | `"localhost"` | - | **`CP_REDIS_PASSWORD`** | ?string | `null` | - | **`CP_REDIS_PORT`** | ?number | `6379` | - | **`CP_REDIS_DATABASE`** | ?number | `0` | - | **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` | - | **`CP_EMAIL_FROM`** | ?string | `undefined` | - | **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` | - | **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` | - | **`CP_EMAIL_SMTP_PORT`** | ?number | `25` | - | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` | - | **`CP_ENABLE_2FA`** | ?boolean | `undefined` | - | **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` | - | **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` | - | **`CP_MEDIA_S3_KEY`** | ?string | `undefined` | - | **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` | - | **`CP_MEDIA_S3_REGION`** | ?string | `undefined` | - | **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` | - | **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` | - | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` | - | **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` | - | **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` | - | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | - | **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` | - | **`CP_TIMEOUT`** | ?number | `900` | + | Nom de la variable | Tipus (`default`) | Valor per defecte | + | ------------------------------------- | -----------------------| ----------------- | + | **`CP_BASEURL`** | cadena | `undefined` | + | **`CP_MEDIA_BASEURL`** | ?cadena | `CP_BASEURL` | + | **`CP_ADMIN_GATEWAY`** | ?cadena | `"cp-admin"` | + | **`CP_AUTH_GATEWAY`** | ?cadena | `"cp-auth"` | + | **`CP_ANALYTICS_SALT`** | cadena | `undefined` | + | **`CP_DATABASE_HOSTNAME`** | ?cadena | `"mariadb"` | + | **`CP_DATABASE_NAME`** | ?cadena | `MYSQL_DATABASE` | + | **`CP_DATABASE_USERNAME`** | ?cadena | `MYSQL_USER` | + | **`CP_DATABASE_PASSWORD`** | ?cadena | `MYSQL_PASSWORD` | + | **`CP_DATABASE_PREFIX`** | ?cadena | `"cp_"` | + | **`CP_CACHE_HANDLER`** | [`"file"` o `"redis"`] | `"file"` | + | **`CP_REDIS_HOST`** | ?cadena | `"localhost"` | + | **`CP_REDIS_PASSWORD`** | ?cadena | `null` | + | **`CP_REDIS_PORT`** | ?nombre | `6379` | + | **`CP_REDIS_DATABASE`** | ?nombre | `0` | + | **`CP_EMAIL_SMTP_HOST`** | ?cadena | `undefined` | + | **`CP_EMAIL_FROM`** | ?cadena | `undefined` | + | **`CP_EMAIL_SMTP_USERNAME`** | ?cadena | `"localhost"` | + | **`CP_EMAIL_SMTP_PASSWORD`** | ?cadena | `null` | + | **`CP_EMAIL_SMTP_PORT`** | ?nombre | `25` | + | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` o `"ssl"`] | `"tls"` | + | **`CP_ENABLE_2FA`** | ?booleà | `undefined` | + | **`CP_MEDIA_FILE_MANAGER`** | ?cadena | `undefined` | + | **`CP_MEDIA_S3_ENDPOINT`** | ?cadena | `undefined` | + | **`CP_MEDIA_S3_KEY`** | ?cadena | `undefined` | + | **`CP_MEDIA_S3_SECRET`** | ?cadena | `undefined` | + | **`CP_MEDIA_S3_REGION`** | ?cadena | `undefined` | + | **`CP_MEDIA_S3_BUCKET`** | ?cadena | `undefined` | + | **`CP_MEDIA_S3_PROTOCOL`** | ?nombre | `undefined` | + | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?booleà | `undefined` | + | **`CP_MEDIA_S3_KEY_PREFIX`** | ?cadena | `undefined` | + | **`CP_DISABLE_HTTPS`** | ?[`0` o `1`] | `undefined` | + | **`CP_MAX_BODY_SIZE`** | ?nombre (amb sufix) | `512M` | + | **`CP_PHP_MEMORY_LIMIT`** | ?nombre (amb sufix) | `512M` | + | **`CP_TIMEOUT`** | ?nombre | `900` | - **castopod/web-server** - | Nom de la variable | Type | Default | - | ---------------------- | --------------------- | ------- | - | **`CP_APP_HOSTNAME`** | ?string | `"app"` | - | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | - | **`CP_TIMEOUT`** | ?number | `900` | + | Nom de la variable | Tipus | Valor per defecte | + | ----------------------| ----------------------| ----------------- | + | **`CP_APP_HOSTNAME`** | ?cadena | `"app"` | + | **`CP_MAX_BODY_SIZE`**| ?nombre (amb sufix) | `512M` | + | **`CP_TIMEOUT`** | ?nombre | `900` | \ No newline at end of file diff --git a/docs/src/ca/getting-started/install.md b/docs/src/ca/getting-started/install.md index 217ebd85..909da63d 100644 --- a/docs/src/ca/getting-started/install.md +++ b/docs/src/ca/getting-started/install.md @@ -5,220 +5,119 @@ sidebarDepth: 3 # Com instal·lar Castopod? -Castopod va ser pensat per ser fàcil d'instal·lar. Ja sigui utilitzant un -allotjament dedicat o un compartit, podeu instal·lar-lo a la majoria de -servidors web compatibles amb PHP-MySQL. +Castopod ha estat dissenyat per ser fàcil d'instal·lar. Ja sigui que utilitzis +un allotjament dedicat o compartit, pots instal·lar-ho en la majoria de servidors +web compatibles amb PHP-MySQL. ::: tip Nota Hem publicat imatges oficials de Docker per a Castopod! -Si preferiu utilitzar Docker, podeu ometre això i anar directament a la -[documentació de Docker](./docker.md) per a Castopod. +Si prefereixes utilitzar Docker, pots saltar aquesta part i anar directament a la +[documentació sobre Docker](./docker.md) per a Castopod. ::: ## Requisits -- PHP v8.1 only +- PHP v8.1 només - MySQL versió 5.7 o superior o MariaDB versió 10.2 o superior -- Support d'HTTPS -- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - incoming requests +- Suport per a HTTPS +- Un [rellotge sincronitzat amb ntp](https://wiki.debian.org/NTP) per validar les + sol·licituds entrants de la federació -### PHP v8.1 only +### PHP v8.1 només -PHP version 8.1 is required, with the following extensions installed: +Es requereix la versió 8.1 de PHP, amb les següents extensions instal·lades: -- [intl](https://php.net/manual/en/intl.requirements.php) -- [libcurl](https://php.net/manual/en/curl.requirements.php) -- [mbstring](https://php.net/manual/en/mbstring.installation.php) -- [gd](https://www.php.net/manual/en/image.installation.php) amb les llibreries - **JPEG**, **PNG** i **WEBP**. -- [exif](https://www.php.net/manual/en/exif.installation.php) +- [intl](https://www.php.net/manual/fr/intl.requirements.php) +- [libcurl](https://www.php.net/manual/fr/curl.requirements.php) +- [mbstring](https://www.php.net/manual/fr/mbstring.installation.php) +- [gd](https://www.php.net/manual/en/image.installation.php) amb **JPEG**, + **PNG** i biblioteques **WEBP**. +- [exif](https://www.php.net/manual/fr/exif.installation.php) -A més, assegureu-vos que les extensions següents estiguin habilitades al vostre -PHP: +A més, assegura't que les següents extensions estiguin activades en el teu PHP: -- json (activat per defecte; no el desactiveu) -- xml (activat per defecte; no el desactiveu) -- [mysqlnd](https://php.net/manual/en/mysqlnd.install.php) +- json (activat de forma predeterminada - no el desactivis) +- xml (activat de forma predeterminada - no el desactivis) +- [mysqlnd](https://www.php.net/manual/fr/mysqlnd.install.php) ### Base de dades compatible amb MySQL -> Us recomanem que utilitzeu [MariaDB](https://mariadb.org). +> Recomanem utilitzar [MariaDB](https://mariadb.org). -::: warning Avís +::: warning Atenció -Castopod només funciona amb bases de dades compatibles amb MySQL 5.7 o superior. -No funcionarà amb l'anterior MySQL v5.6, per exemple, ja que el seu final de -vida va ser el 5 de febrer de 2021. +Castopod només funciona amb bases de dades MySQL 5.7 o versions més recents. +Les versions 5.6 (que han deixat de rebre suport el 5 de febrer de 2021) o anteriors +de MySQL no funcionaran. ::: -Necessitareu el nom d'amfitrió del servidor (hostname), el nom de la base de -dades, el nom d'usuari i la contrasenya per completar el procés d'instal·lació. -Si no els teniu, poseu-vos en contacte amb l'administrador del vostre servidor. +Necessitaràs el nom de l'amfitrió del servidor, el nom de la base de dades, el nom +d'usuari i la contrasenya per completar el procés d'instal·lació. Si no tens aquesta +informació, posa't en contacte amb l'administrador. -#### Privilegis +#### Drets d'accés -User must have at least these privileges on the database for Castopod to work: -`CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`, `UPDATE`, -`REFERENCES`, `CREATE VIEW`. +L'usuari ha de tenir com a mínim aquests drets d'accés a la base de dades perquè +Castopod funcioni: `CREATE`, `ALTER`, `DELETE`, `EXECUTE`, +`INDEX`,`INSERT`, `SELECT`, `UPDATE`,`REFERENCES`, `CREATE VIEW`. -### (Opcional) FFmpeg v4.1.8 o superior per fer videoclips +### (Opcional) FFmpeg v4.1.8 o superior per a clips de vídeo -Si voleu generar videoclips, cal [FFmpeg](https://www.ffmpeg.org/) versió 4.1.8 -o superior. Cal instal·lar les següents extensions: +Es requereix la versió 4.1.8 o superior de [FFmpeg](https://www.ffmpeg.org/) si +vols generar clips de vídeo. Les següents extensions han d'estar instal·lades: -- La llibreria **FreeType 2** per +- biblioteca **FreeType 2** per a [gd](https://www.php.net/manual/en/image.installation.php). ### (Opcional) Altres recomanacions -- Redis per a un millor rendiment de la memòria cau. -- CDN per a la memòria cau de fitxers estàtics i millors rendiments. -- Passarel·la de correu electrònic per a contrasenyes perdudes. +- Redis per a un millor rendiment del memòria cau (cache). +- CDN per a la cache de fitxers estàtics i un millor rendiment. +- Passarel·la de correu electrònic per als contrasenyes perdudes. ## Instruccions d'instal·lació -### Pre-requisits +### Preparatius -0. Obteniu un servidor web amb els [requisits](#requirements) instal·lats -1. Creeu una base de dades MySQL per a Castopod amb un usuari amb privilegis - d'accés i modificació (per a més informació, vegeu - [base de dades compatible MySQL](#mysql-compatible-database)). -2. Activeu HTTPS al vostre domini amb un _certificat SSL_. -3. Baixeu i descomprimiu el darrer [paquet Castopod](https://castopod.org/) al - servidor web si encara no ho heu fet. - - ⚠️ Establiu l'arrel del document del servidor web a la subcarpeta - `castopod/public/`. -4. Add **cron tasks** on your web server for various background processes - (replace the paths accordingly): +0. Obtén un servidor web amb [els requisits](#requisits) instal·lats. +1. Crea una base de dades MySQL per a Castopod amb un usuari amb els permisos d'accés i + modificació (per a més informació, consulta la secció + [Base de dades compatible amb MySQL](#base-de-dades-compatible-amb-mysql)). +2. Activa HTTPS al teu domini amb un _certificat SSL_. +3. Descarrega i descomprimeix el paquet més recent de [Castopod](https://castopod.org/) + al servidor web si encara no ho has fet. + - ⚠️ Assegura't que la carpeta arrel del document del servidor web apunti a la subcarpeta + `public/` de la carpeta `castopod`. +4. Afegiu **tasques cron** al teu servidor web per als diversos processos en segon pla + (substitueix les rutes segons corresponguin): ```bash - * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1 + * * * * * /ruta/fins/a/php /ruta/fins/a/castopod/spark tasks:run >> /dev/null 2>&1 ``` - **Note** - If you do not add this cron task, the following Castopod features - will not work: + **Nota** - Si no afegeixes aquesta tasca cron, les funcionalitats següents de Castopod + no funcionaran: - - Importing a podcast from an existing RSS feed - - Broadcasting social activities to your followers in the fediverse - - Broadcasting episodes to open hubs using + - Importar un podcast des d'un aliment RSS existent + - Difondre activitats socials als teus seguidors a la federació + - Difondre episodis a hubs oberts utilitzant [WebSub](https://en.wikipedia.org/wiki/WebSub) - - Generating video clips - - [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips) + - Generació de clips de vídeo - + [requereix FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips) -### (recomanat) Assistent d'instal·lació +### (Mètode recomanat) Assistent d'instal·lació -1. Executeu l'script d'instal·lació de Castopod anant a la pàgina web de - l'assistent d'instal·lació (`https://exemple.com/cp-install`) al vostre - navegador web preferit. -2. Seguiu les instruccions a la vostra pantalla. -3. Comenceu a fer podcasts! +1. Executa l'script d'instal·lació de Castopod accedint a la pàgina de l'assistent + d'instal·lació (`https://el-teu-nom-de-domini.com/cp-install`) des del teu navegador + web preferit. +2. Segueix les instruccions que s'hi mostren. +3. Comença a emetre el teu podcast! -::: info Nota +:::info Nota -L'script d'instal·lació escriu un fitxer `.env` a l'arrel del paquet. If you -cannot go through the install wizard, you can create and edit the `.env` file -manually based on the `.env.example` file. - -::: - -### Email/SMTP setup - -Email configuration is required for some features to work properly (eg. -retrieving your forgotten password, sending instructions to premium subscribers, -…) - -You may add your email configuration in your instance's `.env` like so: - -```ini -# […] - -email.fromEmail="your_email_address" -email.SMTPHost="your_smtp_host" -email.SMTPUser="your_smtp_user" -email.SMTPPass="your_smtp_password" -``` - -#### Email config options - -| Variable name | Type | Default | -| ---------------- | -------------------- | ------------ | -| **`fromEmail`** | string | `undefined` | -| **`fromName`** | string | `"Castopod"` | -| **`SMTPHost`** | string | `undefined` | -| **`SMTPUser`** | string | `undefined` | -| **`SMTPPass`** | string | `undefined` | -| **`SMTPPort`** | number | `25` | -| **`SMTPCrypto`** | [`"tls"` or `"ssl"`] | `"tls"` | - -### Media storage - -By default, files are saved to the `public/media` folder using the file system. -If you need to relocate the `media` folder to a different location, you can -specify it in your `.env` file as shown below: - -```ini -# […] - -media.root="media" -media.storage="/mnt/storage" -``` - -In this example, the files will be saved to the /mnt/storage/media folder. Make -sure to also update your web server configuration to reflect this change. - -### S3 - -If you prefer storing your media files on an S3 compatible storage, you may -specify it in your `.env`: - -```ini -# […] - -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" -``` - -#### S3 config options - -| Variable name | Type | Default | -| ----------------------- | ------- | ----------- | -| **`endpoint`** | string | `undefined` | -| **`key`** | string | `undefined` | -| **`secret`** | string | `undefined` | -| **`region`** | string | `undefined` | -| **`bucket`** | string | `castopod` | -| **`protocol`** | number | `undefined` | -| **`pathStyleEndpoint`** | boolean | `false` | -| **`keyPrefix`** | string | `undefined` | - -## Paquets de la comunitat - -If you don't want to bother with installing Castopod manually, you may use one -of the packages created and maintained by the open-source community. - -### Install with YunoHost - -[YunoHost](https://yunohost.org/) is a distribution based on Debian GNU/Linux -made up of free and open-source software packages. It manages the hardships of -self-hosting for you. - - +L'script d'instal·lació crea un fitxer `.env` a la carpeta arrel del paquet. Si no pots +utilitzar l'assistent d' \ No newline at end of file diff --git a/docs/src/ca/getting-started/security.md b/docs/src/ca/getting-started/security.md index 54caee00..4d671145 100644 --- a/docs/src/ca/getting-started/security.md +++ b/docs/src/ca/getting-started/security.md @@ -2,25 +2,25 @@ title: Seguretat --- -# Detalls de seguretat +# Qüestions de seguretat -Castopod està fet amb [CodeIgniter4](https://codeigniter.com/), un framework PHP -que fomenta les +Castopod està desenvolupat amb [CodeIgniter4](https://codeigniter.com/), un +framework PHP que fomenta les [bones pràctiques de seguretat](https://codeigniter.com/user_guide/concepts/security.html). -Per maximitzar la seguretat de la vostra instància i evitar qualsevol atac -maliciós, us recomanem que actualitzeu tots els permisos dels fitxers de -Castopod després de la instal·lació o actualitzacions (per evitar qualsevol -error de permís previ): +Per garantir la màxima seguretat de la teva instància i evitar atacs maliciosos, +et recomanem actualitzar els permisos dels fitxers de Castopod després de la +instal·lació i després de cada actualització (i evitar errors d'accés als fitxers): -- el directori `writable/` ha de ser **llegible** i **escrivible**. -- el directori `public/media/` ha de ser **llegible** i **escrivible**. -- qualsevol altre fitxer ha de ser definit com a **només-lectura**. +- La carpeta `writable/` ha de ser accessible en **lectura** i en **escriptura**. +- La carpeta `public/media/` ha de ser accessible en **lectura** i en **escriptura**. +- qualsevol altre fitxer ha de ser accessible només en **lectura**. -Per exemple, si utilitzeu Apache o NGINX amb Ubuntu, podeu fer el següent: +Per exemple, si utilitzes Apache o NGINX amb Ubuntu, pots executar les següents +comandes: ```bash -sudo chown -R root:root /ruta/cap/a/castopod -sudo chown -R www-data:www-data /ruta/cap/a/castopod/writable -sudo chown -R www-data:www-data /ruta/cap/a/castopod/public/media -``` +sudo chown -R root:root /ruta/fins/a/castopod +sudo chown -R www-data:www-data /ruta/fins/a/castopod/writable +sudo chown -R www-data:www-data /ruta/fins/a/castopod/public/media +``` \ No newline at end of file diff --git a/docs/src/ca/getting-started/update.md b/docs/src/ca/getting-started/update.md index b6a4832a..d9368c30 100644 --- a/docs/src/ca/getting-started/update.md +++ b/docs/src/ca/getting-started/update.md @@ -1,110 +1,107 @@ --- -title: Actualitzar +title: Actualització sidebarDepth: 3 --- -# Com actualitzar Castopod? +# Com instal·lar Castopod ? -Després d'instal·lar Castopod, és possible que vulgueu actualitzar la vostra -instància a la darrera versió per gaudir de les últimes funcions ✨, correccions -d'errors 🐛 i millores de rendiment ⚡. +Després d'instal·lar Castopod, pots actualitzar la teva instància a la +darrera versió per poder gaudir de les últimes funcionalitats ✨, correccions de +bugs 🐛 i millores de rendiment ⚡. -## Update instructions +## Instruccions d'actualització -0. ⚠️ Before any update, we highly recommend you backup your Castopod files and - database. +0. ⚠️ Abans de realitzar cap actualització, us recomanem encaridament que feu una còpia de seguretat + dels vostres fitxers de Castopod i de la base de dades. - cf. - [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) + [He de fer una còpia de seguretat abans de fer la actualització?](#he-de-fer-una-còpia-de-seguretat-abans-de-fer-la-actualització) -1. Go to the - [releases page](https://code.castopod.org/adaures/castopod/-/releases) and - see if your instance is up to date with the latest Castopod version +1. Vés a la + [pàgina de versions](https://code.castopod.org/adaures/castopod/-/releases) i + comprova si la teva instància està actualitzada a l'última versió de Castopod. - cf. - [Where can I find my Castopod version?](#where-can-i-find-my-castopod-version) + [On puc trobar la versió de Castopod?](#on-puc-trobar-la-versió-de-castopod) -2. Download the latest release package named `Castopod Package`, you may choose - between the `zip` or `tar.gz` archives +2. Descarrega el paquet de l'última versió anomenat `Paquet de Castopod`, pots triar + entre els arxius `zip` o `tar.gz`. - - ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code - - Note that you can also download the latest package from - [castopod.org](https://castopod.org/) + - ⚠️ Assegura't de descarregar el Paquet de Castopod i **NO** el Codi Font. + - Tingues en compte que també pots descarregar l'últim paquet des de + [castopod.org](https://castopod.org/). -3. On your server: +3. Al teu servidor: - - Remove all files except `.env` and `public/media` - - Copy the new files from the downloaded package into your server + - Esborra tots els fitxers menys `.env` i `public/media`. + - Copia els nous fitxers del paquet descarregat al teu servidor. - ::: info Note + ::: info Nota - You may need to reset files permissions as during the install process. - Check [Security Concerns](./security.md). + Potser hauràs de configurar de nou els permisos dels fitxers com + s'indica en el procés d'instal·lació. Consulta + [Qüestions de seguretat](./security.md). ::: -4. Update your database schema from your `Castopod Admin` > `About` page or by - running: +4. Actualitza l'esquema de la teva base de dades des de la pàgina `Castopod Admin` > `Sobre l'aplicació` o bé + executant: ```bash php spark castopod:database-update ``` -5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > - `Housekeeping` -6. ✨ Enjoy your fresh instance, you're all done! +5. Netega la memòria cau des de l'opció `Castopod Admin` > `Configuració` > `general` > `Netega`. +6. ✨ Gaudeix de la teva nova instància, has acabat! -::: info Note +::: info Nota -Releases may come with additional update instructions (see -[releases page](https://code.castopod.org/adaures/castopod/-/releases)). +Les versions poden tenir instruccions d'actualització adicionals (consulta la +[pàgina de les notes de la versió](https://code.castopod.org/adaures/castopod/-/releases)). - cf. - [I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do) + [Fa molt de temps que no actualitzo la meva instància... Què hauria de fer?](#fa-molt-de-temps-que-no-actualitzo-la-meva-instància-què-hauria-de-fer) ::: -## Fully Automated updates +## Actualitzacions totalment automatitzades -> Aviat... 👀 +> Properament... 👀 -## Preguntes més freqüents (FAQ) +## Preguntes Més Freqüents (PMF) -### On puc trobar la meva versió de Castopod? +### On puc trobar la versió de Castopod? -Go to your Castopod admin panel, the version is displayed on the bottom left -corner. +Ves al teu panell d'administració de Castopod, la versió es mostra a la part inferior esquerra. -Alternatively, you can find the version in the `app > Config > Constants.php` -file. +També pots trobar la versió a l'aplicació +`> Configuració > Constants.php` carpeta. -### Fa temps que no actualitzo la meva instància... Què hauria de fer? +### Fa molt de temps que no actualitzo la meva instància... Què hauria de fer? -No problem! Just get the latest release as described above. Only, when going -through the release instructions (4), perform them sequentially, from the oldest -to the newest. +Cap problema! Només has de seguir els passos per aconseguir l'última versió com s'explica +anteriorment. Quan executis les instruccions d'actualització (4), executa-les +seqüencialment, de més antiga a més recent. -> És possible que vulgueu fer una còpia de seguretat de la vostra instància en -> funció del temps que no heu actualitzat Castopod. +> Hauries de fer una còpia de seguretat de la teva instància segons la data de l'última actualització +> de Castopod. -For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to -`v1.0.0-beta.1`: +Per exemple, si estàs a la versió `v1.0.0-alpha.42` i vols actualitzar a +la versió `v1.0.0-beta.1`: -0. (molt recomanable) Feu una còpia de seguretat dels vostres fitxers i base de +0. (fortament recomanat) Fes una còpia de seguretat dels teus fitxers i de la teva base de dades. -1. Baixeu la darrera versió, sobreescriu els vostres fitxers mantenint `.env` i - `public/media`. +1. Descarrega l'última versió, sobreescriu els teus fitxers conservant + `.env` i `public/media`. -2. Seguiu les instruccions d'actualització de cada versió seqüencialment (de la - més antiga a la més recent) començant per `v1.0.0-alpha.43`, - `v1.0.0-alpha.44`, `v1.0.0-alpha.45`, ..., `v1.0.0-beta.1`. +2. Executa les instruccions d'actualització una per una (de més antiga a més recent). -3. ✨ Gaudiu de la vostra nova instància, tot fet i preparat! +3. ✨ La teva nova instància està llesta! -### Hauria de fer una còpia de seguretat abans d'actualitzar? +### He de fer una còpia de seguretat abans de fer la actualització? -We advise you do, so you don't lose everything if anything goes wrong! +Et recomanem que ho facis, per si de cas alguna cosa anés malament! -More generally, we advise you make regular backups of your Castopod files and -database to prevent you from losing it all… +En general, et recomanem que facis còpies de seguretat regulars dels teus fitxers de Castopod i de la teva +base de dades per evitar perdre-ho tot... \ No newline at end of file diff --git a/docs/src/ca/index.md b/docs/src/ca/index.md index 9418ec77..a10f7b06 100644 --- a/docs/src/ca/index.md +++ b/docs/src/ca/index.md @@ -2,244 +2,142 @@ sidebarDepth: 2 --- -# Benvinguts 👋 +# Benvingut 👋 [![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![stars-badge]][stars] -Castopod és una plataforma d'allotjament gratuïta i de codi obert creada per a -podcasters que volen involucrar i interactuar amb el seu públic. +Castopod és una plataforma de hosting gratuïta i de codi obert dissenyada per a podcasters que volen intercanviar i interactuar amb el seu públic. -Castopod és fàcil d'instal·lar i s'ha creat amb -[CodeIgniter4](https://codeigniter.com/), un marc PHP potent amb una empremta -molt petita. +Castopod és fàcil d'instal·lar i ha estat desenvolupat amb [CodeIgniter4](https://codeigniter.com/), un framework PHP potent i molt lleuger. ## Característiques -- 🌱  Gratis i de codi obert (llicència AGPL v3) -- 🔐  Centrat en la sobirania de les dades: el vostre contingut, audiència - i estadístiques us pertanyen, i només a vosaltres -- 🪄  Funcions de podcasting 2.0: GUID, bloqueigos, transcripcions, - finançament, capítols, geo-localització, persones, fragments d'àudio, … +- 🌱  Lliure, gratuït i de codi obert (Llicència AGPL-3.0) +- 🔐  Centrat en la sobirania de les dades: el teu contingut, el teu públic i les teves estadístiques són teves i només teves +- 🪄  Funcionalitats del Podcasting 2.0 : GUID, bloquejos, transcripcions, finançament, capítols, geolocalització, convidats, fragments sonors, ... - 💬  Xarxa social integrada: - - 🚀  Castopod forma part de Fediverse, una xarxa social descentralitzada - - ❤️  Creeu publicacions, compartiu-les, afegiu-hi com a preferits i - comenteu episodis + - 🚀  Castopod forma part del Fedivers, una xarxa social descentralitzada + - ❤️  Creació de publicacions, compartir, afegir a preferits i comentar episodis - 📈  Estadístiques integrades: - - ⚖️  Complint amb GDPR / CCPA / LGPD - - 🪙  Mesura d'audiència segons l'estàndard IABv2 - - 🏡  Estadístiques locals, sense cap tercer implicat + - ⚖️  Compliance GDPR / CCPA / LGPD + - 🪙  Mesura de l'audiència segons IABv2 + - 🏡  Estadístiques integrades, sense intermediaris de terceres parts - 📢  Eines de màrqueting integrades: - - ✅  Preparada per a SEO (metaetiquetes de gràfics oberts, JSON-LD, …) - - 📱  PWA: instal·lable pels oients com a aplicació autònoma - - 🎨  Colors del tema personalitzables - - 🎬  Genereu videoclips d'episodis preparats per compartir - - 🔉  Genera fragments d'àudio de cada episodi - - ▶️  Reproductor incrustable, per incrustar els episodis a qualsevol - lloc web + - ✅  Preparat per a SEO (metaetiquetes Open Graph, JSON-LD...) + - 📱  PWA: instal·la-ho com una aplicació independent + - 🎨  Colors de temes personalitzables + - 🎬  Genera clips de vídeo per compartir a partir dels episodis + - 🔉  Genera fragments sonors + - ▶️  Inclou els teus episodis a qualsevol lloc web - 💸  Monetització: - 🔗  Enllaços de finançament - - 📲  Anuncis per escoltar-fent-clic - - 🤝  Integració amb value4value i WebMonetization - - 💎  Premium podcasts -- 📡  Publiqueu els vostres episodis a tot arreu amb RSS: - - 📱  A tots els directoris i aplicacions: Podcast Index, Apple Podcasts, - Spotify, Google Podcasts, Deezer, Podcast Addict, Podfriend, … - - ⚡  Emeteu els vostres episodis a l'instant amb WebSub -- 📥  Importació de podcasts: moveu el vostre podcast existent a Castopod -- 📤  Traieu el vostre podcast fora de Castopod -- 🔀  Multi-podcast: allotgeu tants programes com vulgueu en un mateix lloc -- 👥  Multi-usuari: afegiu col·laboradors i definiu rols -- 🌎  Suport i18n: traduït a l'anglès, català, espanyol, xinès, francès, - polonès, alemany, portuguès brasiler ... i - [més per venir](https://translate.castopod.org)! + - 📲  Publicitat "listen-to-click" + - 🤝  value4value / WebMonetization + - 💎  Podcasts de pagament +- 📡  Publica els teus episodis arreu amb RSS: + - 📱  A tots els índexs i aplicacions: Podcast Index, Podcasts d'Apple, Spotify, Google Podcasts, Deezer, Podcast Addict, Podfriend... + - ⚡  Un consum instantani d'episodis amb WebSub +- 📥  Importació de podcasts: trasllada el teu podcast existent a Castopod +- 📤  Canvia el teu podcast a un altre proveïdor d'hosting +- 🔀  Multiinquilí: allotja tants podcasts com vulguis +- 👥  Multiusuari: afegeix col·laboradors i determina els seus rols +- 🌎  Suport de i18n: traduït a l'anglès, francès, polonès, alemany, portuguès, portuguès del Brasil i espanyol... i [més a l'avenir](https://translate.castopod.org)! -## Motivació +## Per què Castopod? -The podcasting ecosystem is decentralized by nature: you can create your podcast -as an RSS file, publish it on the web and have it shared everywhere online. +L'ecosistema dels podcasts és descentralitzat per naturalesa: pots crear el teu podcast com un fitxer RSS, publicar-lo a la web i compartir-lo arreu en línia. -It is in fact one of the only media to have stayed this way for a long time. +De fet, és un dels pocs mitjans que ha mantingut aquesta característica durant molt de temps. -As usages are evolving, more and more people are getting into podcasts: whether -it is creators finding new ways to share their ideas, or listeners in the search -for better content. +A mesura que els usos evolucionen, cada vegada hi ha més persones que s'interessen pels podcasts: ja sigui creadors que busquin noves maneres de compartir les seves idees o oients a la recerca de contingut millor. -With podcasting becoming more widely used, some companies are trying to shift it -towards a more controlled and centralized medium. +Amb l'increment de l'ús dels podcasts, algunes empreses intenten traslladar-lo cap a un mitjà més controlat i centralitzat. -Castopod was created in an effort to provide an open and sustainable alternative -to hosting your podcasts, promoting decentralization to ensure that podcasters -creativity can express itself. +Castopod es va crear per oferir una alternativa oberta i sostenible per allotjar els teus podcasts, promoure la descentralització i assegurar que la creativitat dels podcasters es pugui expressar. -This project is pushed by the open-source community, and specifically by the -[Fediverse](https://fediverse.party/en/fediverse/) and -[Podcasting 2.0](https://podcastindex.org/) movements. +Aquest projecte està impulsat per la comunitat de codi obert, i concretament pels moviments [Fedivers](https://fediverse.party/en/fediverse/) i [Podcasting 2.0](https://podcastindex.org/). -## Comparació amb altres solucions +## Comparativa amb altres solucions -We believe that a solution is not necessarily right for everyone, it highly -depends on your needs. So, here are comparisons with other tools to help you to -gauge whether Castopod is the right fit for you. +Creiem que una solució no és necessàriament adequada per a tothom, depèn molt de les teves necessitats. Així que aquí tens algunes comparatives amb altres eines per ajudar-te a veure si Castopod és la solució adequada per a tu. ### Castopod vs Wordpress -Castopod is often referred to as "the Wordpress for podcasts" because of the -similarities between the two. In some ways this is true. And actually, Castopod -was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption -from the community and the number of websites running it. +Castopod sovint s'anomena "el Wordpress dels podcasts" a causa de les similituds entre ambdues plataformes. En cert sentit, això és cert. De fet, Castopod s'ha inspirat en gran manera en l'ecosistema de Wordpress, observant la facilitat d'adopció per part de la comunitat i la gran quantitat de llocs web que l'utilitzen. -Just like Wordpress, Castopod is free & open source, built using PHP with a -MySQL database and is packaged in a way that you can easily install on most web -servers. +Com WordPress, Castopod és gratuït i de codi obert, construït amb PHP i una base de dades MySQL, i es presenta d'una manera fàcil d'instal·lar en la majoria dels servidors web. -Wordpress is a great way to create your website and extend it with plugins to -get what you want. It is a full fledged CMS that helps you get any type of -website online. +WordPress és una gran manera de crear el teu lloc web i ampliar-lo amb complementos per obtenir el que vols. És un CMS potent que t'ajuda a publicar qualsevol tipus de lloc web. -On the other hand, Castopod is meant to address the podcasters needs -specifically, focusing on podcasting, and nothing else. You don't need any -plugin to get you started on your podcasting journey. +D'altra banda, Castopod té com a objectiu satisfer les necessitats dels podcasters en concret, centrant-se exclusivament en els podcasts i en res més. No necessitaràs cap complement per començar amb la teva aventura de fer podcasts. -This allows optimizing the processes specific to podcasting: ranging from the -creation of your podcasts and the publication of new episodes all the way to -broadcasting, marketing and analytics. +Això permet optimitzar els processos específics dels podcasts: des de la creació dels teus podcasts i la publicació de nous episodis fins a la difusió, el màrqueting i les analítiques. -Finally, depending on your needs, Wordpress and Castopod can even live side by -side as they share the same requirements! +Finalment, depenent de les teves necessitats, Castopod i WordPress fins i tot poden coexistir, ja que comparteixen els mateixos requisits! ### Castopod vs Funkwhale -Funkwhale is a self-hosted, modern free and open-source music server. Just as -Castopod, Funkwhale is on the fediverse, a decentralized social network allowing -interoperability between the two. +Funkwhale és un servidor de música autònom, modern i de codi obert. Com Castopod, Funkwhale es troba al fedivers, una xarxa social descentralitzada que permet la interoperabilitat entre ambdues. -Funkwhale was initially built around music. And later on, as the project -evolved, the ability to host podcasts was introduced. +Funkwhale va ser creat inicialment per a la música. Més tard, a mesura que el projecte va evolucionar, es va introduir l'opció d'allotjar podcasts. -Unlike Funkwhale, Castopod has been designed and built around podcasting -exclusively. This allows easier implementation for features related to the -podcasting ecosystem, such as the podcasting 2.0 features (transcripts, -chapters, locations, persons, …). +A diferència de Funkwhale, Castopod ha estat dissenyat i construït específicament per als podcasts. Això permet una implementació més senzilla de les funcions relacionades amb l'ecosistema dels podcasts, com ara les funcionalitats de podcasting 2.0 (transcripcions, capítols, ubicacions, persones, etcètera). -So, you should probably use Funkwhale if you want to host your music, and use -Castopod if you want to host your podcasts. +Per tant, hauries d'utilitzar Funkwhale si vols allotjar la teva música i utilitzar Castopod si vols allotjar els teus podcasts. -### Castopod vs altres plataformes de podcast +### Castopod vs altres proveïdors d'allotjament de podcasts -There are many solutions for you to host your podcasts, some of which are really -great and [a lot of them](https://podcastindex.org/apps) are jumping into the -Podcasting 2.0 wagon just like Castopod! +Hi ha moltes solucions per allotjar els teus podcasts, algunes de les quals són molt bones i [moltes d'elles](https://podcastindex.org/apps) es troben en la tendència del Podcasting 2.0 igual que Castopod! -Each of these solutions differ from one another, you may compare with the -[list of features](#features). +Cada una d'aquestes solucions és diferent de les altres; pots comparar-les amb la [llista de característiques](#característiques). -That being said, there are two main differences with other podcasting solutions: +Dit això, hi ha dues diferències principals amb les altres solucions de podcasts: -- Castopod es pot auto-allotjar i és la única solució que us permet mantenir el - control total sobre el que produïu. A més, com que és de codi obert, fins i - tot podeu personalitzar-lo com vulgueu. +- Castopod es pot autoallotjar i és l'únic proveïdor que et permet mantenir el control total del que produeixes. D'altra banda, com que és de codi obert, tens el poder de modificar-lo com vulguis. -- Castopod és l'única solució que actualment integra tant una xarxa social - descentralitzada amb ActivityPub com moltes de les funcions de podcasting 2.0, - amb l'esperança de salvar la bretxa entre les dues. +- Castopod és l'única solució que integra ara mateix tant una xarxa social descentralitzada basada en l'ActivityPub com funcionalitats de "Podcasting 2.0", reduint la distància entre ambdues. -## Col·laborar +## Contribució -Love Castopod and would like to help? Take a look at the following documentation -to get you started. +T'agrada Castopod i vols ajudar? Consulta la documentació següent per començar. ### Codi de conducta -Castopod has adopted a Code of Conduct that we expect project participants to -adhere to. Please read the -[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md) -so that you can understand what actions will and will not be tolerated. +Castopod ha adoptat el Codi de Conducta que fem servir perquè els participants en el projecte s'hi adhereixin. Llegeix el [manual del CODI_DE_CONDUCTA](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md) per entendre quines accions seran intolerables i quines no ho seran. -### Guia de col·laboració +### Guia de contribució -Read our [contributing guide](../contributing/guidelines.md) to learn about our -development process, how to propose bugfixes and improvements, and how to build -and test your changes to Castopod. +Llegeix la nostra [guia de contribució](./contributing/guidelines.md) per obtenir informació sobre el nostre procés de desenvolupament, com proposar correccions d'errors i millores, i com construir i provar els teus canvis a Castopod. -## Col·laboradors ✨ +## Contribuïdors ✨ -Thanks goes to these wonderful people -([emoji key](https://allcontributors.org/docs/en/emoji-key)): +Volem agrair a aquesta gent fantàstica (clau d'emojis [aquí](https://allcontributors.org/docs/en/emoji-key)): - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
Yassine Doghri
Yassine Doghri

💻 🐛 📖 👀 🚧 🖋 🎨 ️️️️♿️ 🌍 💬 🧑‍🏫 🚇 🤔 📆 📝
Benjamin Bellamy
Benjamin Bellamy

💻 🐛 👀 🖋 🌍 💬 🚇 🤔 📝 📆 📢
Benjamin Bellamy
Benjamin Bellamy

💻 🐛 👀 🖋 🌍 💬 🚇 🤔 📝 📆 📢
Ola Hneini
Ola Hneini

💻 👀 📖 🚧 💬 🤔
Romain de Laage
Romain de Laage

💻 🚇 📖 🌍 🤔
Romain de Laage
Romain de Laage

💻 🚇 📖 🌍 🤔
Lyonel Bernard
Lyonel Bernard

🐛 💬 🔊 🤔
Christopher Lagonick-Weitzel
Christopher Lagonick-Weitzel

🐛 💬 🔊 🤔
Christopher Lagonick-Weitzel
Christopher Lagonick-Weitzel

🐛 💬 🔊 🤔
Ernesto Acosta
Ernesto Acosta

🐛 🔊 🌍 💬 🤔
Bastien Luneteau
Bastien Luneteau

💻 🐛
Cécile Ricordeau
Cécile Ricordeau

🎨
Patryk Miś
Patryk Miś

🌍
Marcin Lewandowski
Marcin Lewandowski

🐛 🤔
Sebastian Janik
Sebastian Janik

💻
Patryk Karczmarczyk
Patryk Karczmarczyk

💻
denis d
denis d

🐛 🤔
Douglas Kastle
Douglas Kastle

🐛 🤔
cExplorer
cExplorer

🐛 🌍
ImaCrea
ImaCrea

🐛 🤔
Jonas S
Jonas S

💻
LEFEBVRE Yann
LEFEBVRE Yann

🐛
Sebastian Späth
Sebastian Späth

🐛 🤔
rocky III
rocky III

🐛
Hermann Josef Eckl
Hermann Josef Eckl

🐛
Delhaye Cyrille
Delhaye Cyrille

🐛 🤔
João Leandro
João Leandro

🌍 🤔
Angelos Chouvardas
Angelos Chouvardas

🌍
Eivind
Eivind

🌍
Ewen
Ewen

🌍 🤔
forght
forght

🌍
glottis0q
glottis0q

🌍
ButterflyOfFire
ButterflyOfFire

🌍
Lucian I. Last
Lucian I. Last

🌍
LuuzViir
LuuzViir

🌍
CTHTC
CTHTC

🌍
Russian Retro
Russian Retro

🌍
Marek L'ach
Marek L'ach

🌍
GunChleoc
GunChleoc

🌍
GabiSnow
GabiSnow

🌍
bendaha
bendaha

🌍
Samuel Roland
Samuel Roland

🌍
Dimitri Regnier
Dimitri Regnier

🤔
irithys
irithys

🌍
Sergi
Sergi

🌍
ghose (XoseM)
ghose (XoseM)

🌍
Andreas Olsson
Andreas Olsson

🌍
leonfrom
leonfrom

🌍
agentcobra
agentcobra

🌍
Alessandro
Alessandro

🌍
liimee
liimee

🌍
Ahmed Sabouni
Ahmed Sabouni

🌍
KrzysztofDomanczyk
KrzysztofDomanczyk

💻
@@ -249,53 +147,42 @@ Thanks goes to these wonderful people -This project follows the -[all-contributors](https://github.com/all-contributors/all-contributors) -specification. Contributions of any kind welcome! +Aquest projecte segueix l'especificació de +[all-contributors](https://github.com/all-contributors/all-contributors). +Totes les contribucions són benvingudes! ## Contacte -You may reach us for help or ask any question you have on: +Ens pots contactar per obtenir ajuda o fer preguntes sobre Castopod a: -- [Discord](https://castopod.org/discord) (per a la interacció directa amb - desenvolupadors i la comunitat) -- [Seguiment d'incidències](https://code.castopod.org/adaures/castopod/-/issues) - (per a sol·licituds de noves funcionalitats i informes d'errors) +- [Discord](https://castopod.org/discord) (per parlar en temps real amb els desenvolupadors i la comunitat) +- [Seguiment de problemes](https://code.castopod.org/adaures/castopod/-/issues) (per fer-ne qualsevol pregunta, suggeriment de nova funcionalitat o informe de bug) -Alternatively, you can follow us on social media platforms to get news about -Castopod: +Alternativament, també pots seguir-nos a les xarxes socials per obtenir notícies sobre Castopod: -- [podlibre.social](https://podlibre.social/@Castopod) (instància de Mastodon) +- [podlibre.social](https://podlibre.social/@Castopod) (Instància Mastodon) - [Twitter](https://twitter.com/castopod) - [LinkedIn](https://linkedin.com/company/castopod) - [Facebook](https://www.facebook.com/castopod) ## Patrocinadors -The ongoing development of Castopod is made possible with the support of its -backers. If you'd like to help, please consider -[sponsoring Castopod's development](https://opencollective.com/castopod/contribute). +El desenvolupament continu de Castopod és possible gràcies al suport dels seus mecenes. Si vols ajudar, considera [patrocinar el desenvolupament de Castopod](https://opencollective.com/castopod/contribute).
- Ad Aures Logo - NLnet Logo + Logo d'Ad Aures + Logo de NLnet
## Llicència -[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/) - -Copyright © 2020-present, [Ad Aures](https://adaures.com/). -https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release -https://img.shields.io/github/license/ad-aures/castopod?color=blue -https://img.shields.io/badge/contributions-welcome-brightgreen.svg -https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg -https://img.shields.io/github/stars/ad-aures/castopod?style=social +[Llicència pública general Affero GNU v3.0](https://choosealicense.com/licenses/agpl-3.0/) +Drets d'autor © 2020-present, [Ad Aures](https://adaures.com/). [release]: https://code.castopod.org/adaures/castopod/-/releases [license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md [contributions]: https://code.castopod.org/adaures/castopod/-/issues [semantic-release]: https://github.com/semantic-release/semantic-release [discord]: https://castopod.org/discord [stars]: https://github.com/ad-aures/castopod/stargazers -[crowdin]: https://translate.castopod.org/project/castopod +[crowdin]: https://translate.castopod.org/project/castopod \ No newline at end of file diff --git a/docs/src/de/contributing/_category_.json b/docs/src/de/contributing/_category_.json index e12f1ce5..8517262a 100644 --- a/docs/src/de/contributing/_category_.json +++ b/docs/src/de/contributing/_category_.json @@ -1,4 +1,4 @@ { - "label": "Contributing", - "position": 3 -} + "label": "Mitwirken", + "position": 3 +} \ No newline at end of file diff --git a/docs/src/de/contributing/guidelines.md b/docs/src/de/contributing/guidelines.md index 1a53c89e..82b9af6c 100644 --- a/docs/src/de/contributing/guidelines.md +++ b/docs/src/de/contributing/guidelines.md @@ -1,154 +1,117 @@ --- -title: Guidelines +title: Richtlinien --- -# Contributing to Castopod +# Mitarbeit an Castopod -Love Castopod and want to help? Thanks so much, there's something to do for -everybody! +Liebst du Castopod und möchtest helfen? Vielen Dank, es gibt für jeden etwas zu tun! -Please take a moment to review this document in order to make the contribution -process easy and effective for everyone involved. +Bitte nimm dir einen Moment Zeit, um dieses Dokument zu lesen, um den Beitragungsprozess einfach und effektiv für alle Beteiligten zu gestalten. -Following these guidelines helps to communicate that you respect the time of the -developers managing and developing this open source project. In return, they -should reciprocate that respect in addressing your issue or assessing patches -and features. +Die Befolgung dieser Richtlinien zeigt, dass du die Zeit der Entwickler respektierst, die dieses Open-Source-Projekt verwalten und entwickeln. Im Gegenzug sollten sie diesen Respekt erwidern, indem sie sich mit deinem Problem befassen oder Patches und Funktionen bewerten. -::: info Note +::: info Hinweis -**Any** contribution made on a repository other than -[the original repository](https://code.castopod.org/adaures/castopod) will not -be accepted. +**Jeder** Beitrag, der auf einem anderen Repository als dem +[Original-Repository](https://code.castopod.org/adaures/castopod) gemacht wird, wird nicht akzeptiert. ::: -## Using the issue tracker +## Verwendung des Issue-Trackers -The [issue tracker](https://code.castopod.org/adaures/castopod/-/issues) is the -preferred channel for [bug reports](#bug-reports), -[features requests](#feature-requests) and -[submitting pull requests](#pull-requests). +Der [Issue-Tracker](https://code.castopod.org/adaures/castopod/-/issues) ist der bevorzugte Kanal für [Fehlerberichte](#bug-reports), [Funktionserweiterungen](#feature-requests) und [das Einreichen von Pull-Requests](#pull-requests). -## ⚠️ Security issues and vulnerabilities +## ⚠ Sicherheitsprobleme und Schwachstellen -If you encounter any security issue or vulnerability in the Castopod source, -please contact us directly by email at -[security@castopod.org](mailto:security@castopod.org) +Wenn du auf ein Sicherheitsproblem oder eine Schwachstelle in der Castopod-Quelle stößt, kontaktiere uns bitte direkt per E-Mail unter [security@castopod.org](mailto:security@castopod.org) -## Bug reports +## Fehlerberichte -A bug is a _demonstrable problem_ that is caused by the code in the repository. -Good bug reports are extremely helpful - thank you! +Ein Fehler ist ein _nachweisbares Problem_, das durch den Code im Repository verursacht wird. Gute Fehlerberichte sind äußerst hilfreich - vielen Dank! -Guidelines for bug reports: +Richtlinien für Fehlerberichte: -1. **Use the issue search** — check if the issue has already been - reported. +1. **Verwende die Issue-Suche** — überprüfe, ob der Fehler bereits gemeldet wurde. -2. **Check if the issue has been fixed** — try to reproduce it using the - latest `main` branch in the repository. +2. **Überprüfe, ob der Fehler behoben wurde** — Versuche, ihn mit dem neuesten `main`-Zweig im Repository zu reproduzieren. -3. **Isolate the problem** — ideally create a - [reduced test case](https://css-tricks.com/reduced-test-cases/) and a live - example. +3. **Isoliere das Problem** — erstelle idealerweise eine + [reduzierte Testfall](https://css-tricks.com/reduced-test-cases/) und ein Live-Beispiel. -A good bug report shouldn't leave others needing to chase you up for more -information. Please try to be as detailed as possible in your report. What is -your environment? What steps will reproduce the issue? What browser(s) and OS -experience the problem? What would you expect to be the outcome? All these -details will help people to fix any potential bugs. +Ein guter Fehlerbericht sollte keine weiteren Informationen von anderen benötigen. Bitte versuche, deinen Bericht so detailliert wie möglich zu gestalten. Was ist deine Umgebung? Welche Schritte reproduzieren den Fehler? Welchen Browser(s) und welches Betriebssystem hast du? Was würdest du als Ergebnis erwarten? Alle diese Details helfen dabei, potenzielle Fehler zu beheben. -> [Issue templates](https://docs.gitlab.com/ee/user/project/description_templates.html#using-the-templates) -> have been created for this project. You may use them to help you follow those -> guidelines. +> [Vorlagen für Fehlerberichte](https://docs.gitlab.com/ee/user/project/description_templates.html#using-the-templates) +> wurden für dieses Projekt erstellt. Du kannst sie nutzen, um den Richtlinien zu folgen. -## Feature requests +## Funktionserweiterungen -Feature requests are welcome. But take a moment to find out whether your idea -fits with the scope and aims of the project. It's up to _you_ to make a strong -case to convince the project's developers of the merits of this feature. Please -provide as much detail and context as possible. +Funktionserweiterungen sind willkommen. Informiere dich jedoch vorher, ob deine Idee in den Rahmen und das Ziel des Projekts passt. Es liegt an _dir_, diesen Feature-Vorschlag überzeugend zu begründen, um die Entwickler des Projekts von den Vorteilen dieser Funktion zu überzeugen. Bitte gib so viele Details und Kontext wie möglich an. -## Pull requests +## Pull-Requests -Good pull requests - patches, improvements, new features - are a fantastic help. -They should remain focused in scope and avoid containing unrelated commits. +Gute Pull-Requests - Patches, Verbesserungen, neue Funktionen - sind eine fantastische Hilfe. Sie sollten sich auf einen bestimmten Bereich konzentrieren und sollten keine nicht zusammenhängenden Commits enthalten. -**Please ask first** before embarking on any significant pull request (e.g. -implementing features, refactoring code, porting to a different language), -otherwise you risk spending a lot of time working on something that the -project's developers might not want to merge into the project. +**Bitte frage zuerst**, bevor du mit einem größeren Pull-Request (z. B. Implementierung von Funktionen, Refaktorisierung von Code, Portierung in eine andere Sprache) beginnst, da du sonst Gefahr läufst, viel Zeit mit etwas zu verbringen, das die Entwickler des Projekts möglicherweise nicht in das Projekt aufnehmen möchten. -Please adhere to the coding conventions used throughout a project (indentation, -accurate comments, etc.) and any other requirements (such as test coverage). +Bitte halte dich an die Coding-Konventionen, die in einem Projekt verwendet werden (Einrückung, genaue Kommentare, etc.) und an alle anderen Anforderungen (wie Testabdeckung). -Adhering to the following process is the best way to get your work included in -the project: +Das Befolgen des folgenden Prozesses ist der beste Weg, um deine Arbeit in das Projekt aufzunehmen: -1. [Fork](https://docs.gitlab.com/ee/gitlab-basics/fork-project.html) the - project, clone your fork, and configure the remotes: +1. [Fork](https://docs.gitlab.com/ee/gitlab-basics/fork-project.html) das Projekt, klone deinen Fork und konfiguriere die Remotes: ```bash -# Clone your fork of the repo into the current directory -git clone https://code.castopod.org//castopod.git +# Klone deinen Fork des Repos in das aktuelle Verzeichnis +git clone https://code.castopod.org//castopod.git -# Navigate to the newly cloned directory +# Navigiere zum neu geklonten Verzeichnis cd castopod -# Assign the original repo to a remote called "upstream" +# Weise dem originalen Repo einen Remote namens "upstream" zu git remote add upstream https://code.castopod.org/adaures/castopod.git ``` -2. If you cloned a while ago, get the latest changes from upstream: +2. Wenn du vor einiger Zeit geklont hast, hole dir die neuesten Änderungen von upstream: ```bash git checkout main git pull upstream main ``` -3. Create a new topic branch (off the `main` branch) to contain your feature, - change, or fix: +3. Erstelle einen neuen Topic-Branch (aus dem `main`-Zweig), um dein Feature, deine Änderung oder Behebung zu enthalten: ```bash git checkout -b ``` -4. Commit your changes in logical chunks. Please adhere to these - [git commit message guidelines](https://conventionalcommits.org/) or your - code is unlikely be merged into the main project. Use Git's - [interactive rebase](https://help.github.com/articles/about-git-rebase/) - feature to tidy up your commits before making them public. +4. Commite deine Änderungen in logischen Teilen. Bitte halte dich an diese + [Git Commit Message-Richtlinien](https://conventionalcommits.org/), da dein + Code sonst wahrscheinlich nicht in das Hauptprojekt integriert wird. Verwende die + [interaktive Rebase-Funktion von Git](https://help.github.com/articles/about-git-rebase/), + um deine Commits vor ihrer Veröffentlichung aufzuräumen. -5. Locally merge (or rebase) the upstream dev branch into your topic branch: +5. Führe (rebase) den Upstream-Entwicklungszweig lokal in deinen Topic-Branch zusammen: ```bash git pull [--rebase] upstream main ``` -6. Push your topic branch up to your fork: +6. Pushe deinen Topic-Branch in deinen Fork: ```bash git push origin ``` -7. [Open a Pull Request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html#new-merge-request-from-a-fork) - with a clear title and description. +7. [Öffne einen Pull-Request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html#new-merge-request-from-a-fork) + mit einem klaren Titel und einer Beschreibung. -**IMPORTANT**: By submitting a patch, you agree to allow the project owners to -license your work under the terms of the -[GNU AGPLv3](https://code.castopod.org/adaures/castopod/-/blob/main/LICENSE). +**WICHTIG**: Durch das Einreichen eines Patches stimmst du zu, dass die Projektbesitzer dein Werk unter den Bedingungen der +[GNU AGPLv3](https://code.castopod.org/adaures/castopod/-/blob/main/LICENSE) lizenzieren. -## Collaborating guidelines +## Richtlinien für die Zusammenarbeit -There are few basic rules to ensure high quality of the project: +Es gibt ein paar grundlegende Regeln, um die hohe Qualität des Projekts sicherzustellen: -- Before merging, a PR requires at least two approvals from the collaborators - unless it's an architectural change, a large feature, etc. If it is, then at - least 50% of the core team have to agree to merge it, with every team member - having a full veto right. (i.e. every single one can block any PR) -- A PR should remain open for at least two days before merging (does not apply - for trivial contributions like fixing a typo). This way everyone has enough - time to look into it. +- Bevor ein PR gemerged wird, benötigt er mindestens zwei Zustimmungen von den Mitwirkenden, es sei denn, es handelt sich um eine architektonische Änderung, ein großes Feature usw. In diesem Fall müssen mindestens 50% des Kernteams zustimmen, es zu mergen, wobei jedes Teammitglied ein absolutes Vetorecht hat. (d.h. jeder einzelne kann jeden PR blockieren) +- Ein PR sollte mindestens zwei Tage lang geöffnet bleiben, bevor er gemerged wird (gilt nicht für triviale Beiträge wie das Beheben eines Tippfehlers). Auf diese Weise hat jeder ausreichend Zeit, ihn zu prüfen. -You are always welcome to discuss and propose improvements to this guideline. +Es ist immer willkommen, über diese Richtlinie zu diskutieren und Verbesserungsvorschläge zu machen. \ No newline at end of file diff --git a/docs/src/de/contributing/setup-development.md b/docs/src/de/contributing/setup-development.md index 7e42892a..66de64c4 100644 --- a/docs/src/de/contributing/setup-development.md +++ b/docs/src/de/contributing/setup-development.md @@ -1,45 +1,40 @@ --- -title: Development setup +title: Einrichtung der Entwicklungsumgebung sidebarDepth: 3 --- -# Setup your development environment +# Richte deine Entwicklungsumgebung ein -## Introduction +## Einführung -Castopod is a web app based on the `php` framework -[CodeIgniter 4](https://codeigniter.com). +Castopod ist eine Webanwendung, die auf dem `php`-Framework [CodeIgniter 4](https://codeigniter.com) basiert. -We use [Docker](https://www.docker.com/) quickly setup a dev environment. A -`docker-compose.yml` and `Dockerfile` are included in the project's root folder -to help you kickstart your contribution. +Wir verwenden [Docker](https://www.docker.com/), um schnell eine Entwicklungs-Umgebung einzurichten. In dem Projektordner sind eine `docker-compose.yml`-Datei und eine `Dockerfile` enthalten, die dir helfen sollen, deinen Beitrag zu starten. -> You don't need any prior knowledge of Docker to follow the next steps. -> However, if you wish to use your own environment, feel free to do so! +> Du benötigst keine vorherigen Kenntnisse in Docker, um den nächsten Schritten zu folgen. Wenn du jedoch deine eigene Umgebung verwenden möchtest, kannst du das gerne tun! -## Setup instructions +## Installationsanleitung -### 1. Pre-requisites +### 1. Voraussetzungen -0. Install [docker](https://docs.docker.com/get-docker). +0. Installiere [docker](https://docs.docker.com/get-docker). -1. Clone Castopod project by running: +1. Klonen das Castopod-Projekt, indem du folgenden Befehl ausführst: ```bash git clone https://code.castopod.org/adaures/castopod.git ``` -2. Create a `.env` file with the minimum required config to connect the app to - the database and use redis as a cache handler: +2. Erstelle eine `.env` Datei mit der minimalen Konfiguration, um die App mit der Datenbank zu verbinden und Redis als Cache-Handler zu verwenden: ```ini CI_ENVIRONMENT="development" - # If set to development, you must run `npm run dev` to start the static assets server + # Wenn die Einstellung auf "development" gesetzt ist, musst du `npm run dev` ausführen, um den Server für die statischen Assets zu starten vite.environment="development" - # By default, this is set to true in the app config. - # For development, this must be set to false as it is - # on a local environment + # Standardmäßig ist dies in der App-Konfiguration auf "true" eingestellt. + # Für die Entwicklung muss dies auf "false" gesetzt werden, da es + # sich um eine lokale Umgebung handelt app.forceGlobalSecureRequests=false app.baseURL="http://localhost:8080/" @@ -56,368 +51,88 @@ to help you kickstart your contribution. cache.handler="redis" cache.redis.host = "redis" - # You may not want to use redis as your cache handler - # Comment/remove the two lines above and uncomment - # the next line for file caching. + # Du möchtest möglicherweise Redis nicht als Cache-Handler verwenden + # Kommentiere/entferne die beiden Zeilen darüber und kommentiere die + # nächste Zeile für den Datei-Cache. #cache.handler="file" ``` - > _NB._ You can tweak your environment by setting more environment variables - > in your custom `.env` file. See the `env` for examples or the - > [CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html) - > for more info. + > _Hinweis:_ Du kannst deine Umgebung anpassen, indem du weitere Umgebungsvariablen in deiner eigenen `.env`-Datei festlegst. Siehe die `env`-Datei für Beispiele oder das [CodeIgniter4 Benutzerhandbuch](https://codeigniter.com/user_guide/index.html) für weitere Informationen. -3. (for docker desktop) Add the repository you've cloned to docker desktop's - `Settings` > `Resources` > `File Sharing` +3. (für Docker Desktop) Füge das von dir geklonte Repository unter "Settings" > "Resources" > "File Sharing" in Docker Desktop hinzu. -### 2. (recommended) Develop inside the app Container with VSCode +### 2. (empfohlen) Entwicklung innerhalb des App-Containers mit VSCode -If you're working in VSCode, you can take advantage of the `.devcontainer/` -folder. It defines a development environment (dev container) with preinstalled -requirements and VSCode extensions so you don't have to worry about them. All -required services will be loaded automagically! 🪄 +Wenn du mit VSCode arbeitest, kannst du den `.devcontainer/`-Ordner nutzen. Dieser definiert eine Entwicklungsumgebung (Dev Container) mit vorinstallierten Anforderungen und VSCode-Erweiterungen, sodass du dir keine Sorgen darum machen musst. Alle erforderlichen Dienste werden automatisch geladen! 🪄 -1. Install the VSCode extension - [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) -2. `Ctrl/Cmd + Shift + P` > `Open in container` +1. Installiere die VSCode-Erweiterung [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers). +2. `Strg/Cmd + Umschalt + P` > `Im Container öffnen`. - > The VSCode window will reload inside the dev container. Expect several - > minutes during first load as it is building all necessary services. + > Das VSCode-Fenster wird innerhalb des Dev-Containers neu geladen. Erwarte einige Minuten beim ersten Laden, da alle erforderlichen Dienste erstellt werden. - **Note**: The dev container will start by running Castopod's php server. - During development, you will have to start [Vite](https://vitejs.dev)'s dev - server for compiling the typescript code and styles: + **Hinweis**: Der Dev-Container wird durch Starten des Castopod-php-Servers gestartet. Während der Entwicklung musst du den Dev-Server von [Vite](https://vitejs.dev) starten, um den TypeScript-Code und die Styles zu kompilieren: ```bash - # run Vite dev server + # Vite Dev-Server starten npm run dev ``` - If there is any issue with the php server not running, you can restart them - using the following commands: + Wenn es Probleme mit dem php-Server gibt, der nicht läuft, kannst du sie mit den folgenden Befehlen neu starten: ```bash - # run Castopod server + # Castopod-Server starten php spark serve - 0.0.0.0 ``` -3. You're all set! 🎉 +3. Du bist fertig! 🎉 - You're now **inside the dev container**, you may use the VSCode console - (`Terminal` > `New Terminal`) to run any command: + Du befindest dich nun **im Dev-Container** und kannst die VSCode-Konsole (`Terminal` > `Neues Terminal`) verwenden, um beliebige Befehle auszuführen: ```bash - # PHP is installed + # PHP ist installiert php -v - # Composer is installed + # Composer ist installiert composer -V - # npm is installed + # npm ist installiert npm -v - # git is installed + # git ist installiert git version ``` -For more info, see -[VSCode Remote Containers](https://code.visualstudio.com/docs/remote/containers) +Weitere Informationen findest du unter [VSCode Remote Containers](https://code.visualstudio.com/docs/remote/containers) -### 3. Start hacking +### 3. Leg los! -You're all set! Start working your magic by updating the project's files! Help -yourself to the -[CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html) for -more insights. +Du bist bereit! Fange an, deine Magie zu wirken, indem du die Dateien des Projekts aktualisierst! Nutze die [CodeIgniter4 Benutzerhandbuch](https://codeigniter.com/user_guide/index.html), um weitere Einblicke zu erhalten. -To see your changes, go to: +Um deine Änderungen zu sehen, gehe zu: -- `http://localhost:8080/` for the Castopod app -- `http://localhost:8888/` for the phpmyadmin interface: +- `http://localhost:8080/` für die Castopod-App +- `http://localhost:8888/` für die phpMyAdmin-Benutzeroberfläche: + - Benutzername: **castopod** + - Passwort: **castopod** - - username: **castopod** - - password: **castopod** +### 2-alt. Entwicklung außerhalb des App-Containers -### 2-alt. Develop outside the app container +Du möchtest den VSCode-Devcontainer nicht verwenden? Kein Problem! -You do not wish to use the VSCode devcontainer? No problem! +1. Starte Docker-Container manuell: -1. Start docker containers manually: - - Go to project's root folder and run: + Gehe zum Stammordner des Projekts und führe aus: ```bash - # starts all services declared in docker-compose.yml file - # -d option starts the containers in the background + # startet alle im docker-compose.yml-Datei deklarierten Dienste + # Die Option -d startet die Container im Hintergrund docker-compose up -d - # See all running processes (you should see 3 processes running) + # Zeige alle ausgeführten Prozesse an (du solltest 3 Prozesse sehen) docker-compose ps - # Alternatively, you can check all docker processes + # Du kannst auch alle Docker-Prozesse anzeigen docker ps -a - ``` - > The `docker-compose up -d` command will boot 4 containers in the - > background: - > - > - `castopod_app`: a php based container with Castopod requirements - > installed - > - `castopod_redis`: a [redis](https://redis.io/) database to handle queries - > and pages caching - > - `castopod_mariadb`: a [mariadb](https://mariadb.org/) server for - > persistent data - > - `castopod_phpmyadmin`: a phpmyadmin server to visualize the mariadb - > database. - -2. Run any command inside the containers by prefixing them with - `docker-compose run --rm app`: - - ```bash - # use PHP - docker-compose run --rm app php -v - - # use Composer - docker-compose run --rm app composer -V - - # use npm - docker-compose run --rm app npm -v - - # use git - docker-compose run --rm app git version - ``` - ---- - -## Going Further - -### Install Castopod's dependencies - -1. Install php dependencies with [Composer](https://getcomposer.org/) - - ```bash - composer install - ``` - - ::: info Note - - The php dependencies aren't included in the repository. Composer will check - the `composer.json` and `composer.lock` files to download the packages with - the right versions. The dependencies will live under the `vendor/` folder. - For more info, check out the - [Composer documentation](https://getcomposer.org/doc/). - - ::: - -2. Install javascript dependencies with [npm](https://www.npmjs.com/) - - ```bash - npm install - ``` - - ::: info Note - - The javascript dependencies aren't included in the repository. Npm will check - the `package.json` and `package.lock` files to download the packages with the - right versions. The dependencies will live under the `node_module` folder. - For more info, check out the [NPM documentation](https://docs.npmjs.com/). - - ::: - -3. Generate static assets: - - ```bash - # build all static assets at once - npm run build:static - - # build specific assets - npm run build:icons - npm run build:svg - ``` - - ::: info Note - - The static assets generated live under the `public/assets` folder, it - includes javascript, styles, images, fonts, icons and svg files. - - ::: - -### Initialize and populate database - -::: tip Tip - -You may skip this section if you go through the install wizard (go to -`/cp-install`). - -::: - -1. Build the database with the migrate command: - - ```bash - # loads the database schema during first migration - php spark migrate -all - ``` - - You may need to undo the migration (rollback): - - ```bash - # rolls back database schema (deletes all tables and their content) - php spark migrate:rollback - ``` - -2. Populate the database with the required data: - - ```bash - # Populates all required data - php spark db:seed AppSeeder - ``` - - You may choose to add data separately: - - ```bash - # Populates all categories - php spark db:seed CategorySeeder - - # Populates all Languages - php spark db:seed LanguageSeeder - - # Populates all podcasts platforms - php spark db:seed PlatformSeeder - - # Populates all Authentication data (roles definition…) - php spark db:seed AuthSeeder - ``` - -3. (optionnal) Populate the database with test data: - - - Populate test data (login: admin / password: AGUehL3P) - - ```bash - php spark db:seed TestSeeder - ``` - - - Populate with fake podcast analytics: - - ```bash - php spark db:seed FakePodcastsAnalyticsSeeder - ``` - - - Populate with fake website analytics: - - ```bash - php spark db:seed FakeWebsiteAnalyticsSeeder - ``` - - TestSeeder will add an active superadmin user with the following credentials: - - - username: **admin** - - password: **AGUehL3P** - -### Useful docker / docker-compose commands - -- Monitor the app container: - -```bash -docker-compose logs --tail 50 --follow --timestamps app -``` - -- Interact with redis server using included redis-cli command: - -```bash -docker exec -it castopod_redis redis-cli -``` - -- Monitor the redis container: - -```bash -docker-compose logs --tail 50 --follow --timestamps redis -``` - -- Monitor the mariadb container: - -```bash -docker-compose logs --tail 50 --follow --timestamps mariadb -``` - -- Monitor the phpmyadmin container: - -```bash -docker-compose logs --tail 50 --follow --timestamps phpmyadmin -``` - -- Restart docker containers: - -```bash -docker-compose restart -``` - -- Destroy all containers, opposite of `up` command: - -```bash -docker-compose down -``` - -- Rebuild app container: - -```bash -docker-compose build app -``` - -Check [docker](https://docs.docker.com/engine/reference/commandline/docker/) and -[docker-compose](https://docs.docker.com/compose/reference/) documentations for -more insights. - -## Known issues - -### Allocation failed - JavaScript heap out of memory - -This happens when running `npm install`. - -👉 By default, docker might not have access to enough RAM. Allocate more memory -and run `npm install` again. - -### (Linux) Files created inside container are attributed to root locally - -You may use Linux user namespaces to fix this on your machine: - -::: info Note - -Replace "username" with your local username - -::: - -1. Go to `/etc/docker/daemon.json` and add: - - ```json - { - "userns-remap": "username" - } - ``` - -2. Configure the subordinate uid/guid: - - ```bash - # in /etc/subuid - username:1000:1 - username:100000:65536 - ``` - - ```bash - # in /etc/subgid - username:1000:1 - username:100000:65536 - ``` - -3. Restart docker: - - ```bash - sudo systemctl restart docker - ``` - -4. That's it! Now, the root user in the container will be mapped to the user on - your local machine, no more permission issues! 🎉 - -You can check -[this great article](https://www.jujens.eu/posts/en/2017/Jul/02/docker-userns-remap/) -to know more about how it works. + > Der Befehl `docker-compose \ No newline at end of file diff --git a/docs/src/de/getting-started/_category_.json b/docs/src/de/getting-started/_category_.json index 877a378f..b1908981 100644 --- a/docs/src/de/getting-started/_category_.json +++ b/docs/src/de/getting-started/_category_.json @@ -1,4 +1,4 @@ { - "label": "Getting Started", + "label": "Erste Schritte", "position": 2 -} +} \ No newline at end of file diff --git a/docs/src/de/getting-started/auth.md b/docs/src/de/getting-started/auth.md index b163d222..3fc0ebc8 100644 --- a/docs/src/de/getting-started/auth.md +++ b/docs/src/de/getting-started/auth.md @@ -1,88 +1,86 @@ --- -title: Authentifizierung & Autorisierung +title: Authentifizierung und Autorisierung sidebarDepth: 3 --- -# Authentifizierung & Autorisierung +# Authentifizierung und Autorisierung -Castopod behandelt Authentifizierung und Autorisierung mit `codeigniter/shield` -kombiniert mit eigenen Regeln. Rollen und Berechtigungen sind auf zwei Ebenen -definiert: +Castopod verwaltet die Authentifizierung und Autorisierung mithilfe von `codeigniter/shield` in Verbindung mit benutzerdefinierten Regeln. Rollen und Berechtigungen werden auf zwei Ebenen definiert: -1. [instanzweit](#1-instance-wide-roles-and-permissions) -2. [pro Podcast](#2-per-podcast-roles-and-permissions) +1. [Auf Instanzebene](#1-Instanzweite-Rollen-und-Berechtigungen) +2. [Pro Podcast](#2-Rollen-und-Berechtigungen-pro-Podcast) ## 1. Instanzweite Rollen und Berechtigungen -### Instanz Rollen +### Rollen auf Instanzebene -| Rolle | Beschreibung | Berechtigungen | -| ------------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------ | -| Super-Administrator | Hat die vollständige Kontrolle über Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks | -| Manager | Verwaltet Castopods Inhalt. | podcasts.create, podcasts.import, persons.manage, pages.manage | -| Podcaster | Generelle Benutzer von Castopod. | admin.access | +| Rolle | Beschreibung | Berechtigungen | +| ------------- | ------------------------------------- | -------------------------------------------------------------------------------------------- | +| Superadmin | Hat vollständige Kontrolle über Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks | +| Manager | Verwaltet den Inhalt von Castopod. | podcasts.create, podcasts.import, persons.manage, pages.manage | +| Podcaster | Allgemeine Benutzer von Castopod. | admin.access | -### Instanz Berechtigungen +### Berechtigungen auf Instanzebene -| Berechtigung | Beschreibung | -| ----------------------- | ---------------------------------------------------------------------------- | -| admin.access | Kann auf den Castopod Adminbereich zugreifen. | -| admin.settings | Kann auf die Castopod Einstellungen zugreifen. | -| users.manage | Kann Castopod Benutzer verwalten. | -| persons.manage | Kann Personen verwalten. | -| pages.manage | Kann Seiten verwalten. | -| podcasts.view | Kann alle Podcasts einsehen. | -| podcasts.create | Kann neue Podcasts erstellen. | -| podcasts.import | Kann Podcasts importieren. | -| fediverse.manage-blocks | Kann Fediverse Akteure/Domains davon abhalten, mit Castopod zu interagieren. | +| Berechtigung | Beschreibung | +| ----------------------- | ------------------------------------------------------ | +| admin.access | Kann auf den Castopod-Adminbereich zugreifen. | +| admin.settings | Kann auf die Castopod-Einstellungen zugreifen. | +| users.manage | Kann Benutzer von Castopod verwalten. | +| persons.manage | Kann Personen verwalten. | +| pages.manage | Kann Seiten verwalten. | +| podcasts.view | Kann alle Podcasts anzeigen. | +| podcasts.create | Kann neue Podcasts erstellen. | +| podcasts.import | Kann Podcasts importieren. | +| fediverse.manage-blocks | Kann fediverse-Akteure/ -Domains blockieren. | -## 2. Pro Podcast Rollen und Berechtigungen +## 2. Rollen und Berechtigungen pro Podcast -### Pro Podcast Rollen +### Rollen pro Podcast -| Rolle | Beschreibung | Berechtigungen | -| ------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Administrator | Hat vollständige Kontrolle über Podcast #{id}. | \* | -| Editor | Verwaltet Inhalte und Veröffentlichungen von Podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments | -| Autor | Verwaltet Inhalte von Podcast #{id}, kann diese aber nicht veröffentlichen. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips | -| Gast | Allgemeiner Mitwirkender des Podcasts #{id}. | view, episodes.view | +| Rolle | Beschreibung | Berechtigungen | +| ----------- | --------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Admin | Hat vollständige Kontrolle über den Podcast #{id}. | \* | +| Editor | Verwaltet den Inhalt und die Veröffentlichungen des Podcasts #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments | +| Autor | Verwaltet den Inhalt des Podcasts #{id}, kann ihn aber nicht veröffentlichen. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips | +| Gast | Allgemeiner Beitragender des Podcasts #{id}. | view, episodes.view | -### Pro Podcast Berechtigung +### Berechtigungen pro Podcast -| Berechtigung | Beschreibung | -| ---------------------------- | ------------------------------------------------------------------------------------------------ | -| view | Kann Dashboard und Analysen des Podcasts #{id} einsehen. | -| edit | Kann Podcast #{id} bearbeiten. | -| delete | Kann Podcast #{id} löschen. | -| manage-import | Kann importierten Podcast #{id} synchronisieren. | -| manage-persons | Kann Mitwirkende des Podcasts #{id} verwalten. | -| manage-subscriptions | Kann Abonnements des Podcast #{id} verwalten. | -| manage-contributors | Kann Mitwirkende des Podcasts #{id} verwalten. | -| manage-platforms | Kann Plattform-Links des Podcast #{id} setzen/entfernen. | -| manage-publications | Kann Podcast #{id} veröffentlichen. | -| manage-notifications | Kann Benachrichtigungen des Podcasts #{id} einsehen und als gelesen markieren. | -| interact-as | Kann als Podcast #{id} interagieren, um Beiträge zu favorisieren, zu teilen oder zu beantworten. | -| episodes.view | Kann Dashboard und Analysen des Podcasts #{id} einsehen. | -| episodes.create | Kann Folgen für Podcast #{id} erstellen. | -| episodes.edit | Kann Podcast #{id} bearbeiten. | -| episodes.delete | Kann Podcast #{id} löschen. | -| episodes.manage-persons | Kann Abonnements des Podcast #{id} verwalten. | -| episodes.manage-clips | Kann Videoclips und Soundbites des Podcasts #{id} verwalten. | -| episodes.manage-publications | Kann Podcast #{id} veröffentlichen. | -| episodes.manage-comments | Du kannst Episodenkommentare von Podcast #{id} erstellen/entfernen. | +| Berechtigung | Beschreibung | +| ---------------------------- | ----------------------------------------------------------------------------------------- | +| view | Anzeigen des Dashboards und der Analytics des Podcasts #{id}. | +| edit | Kann den Podcast #{id} bearbeiten. | +| delete | Kann den Podcast #{id} löschen. | +| manage-imports | Kann den importierten Podcast #{id} synchronisieren. | +| manage-persons | Kann Abonnements des Podcasts #{id} verwalten. | +| manage-subscriptions | Kann Abonnements des Podcasts #{id} verwalten. | +| manage-contributors | Kann Beitragende des Podcasts #{id} verwalten. | +| manage-platforms | Kann Plattform-Links des Podcasts #{id} konfigurieren/löschen. | +| manage-publications | Kann den Podcast #{id} veröffentlichen. | +| manage-notifications | Kann die Benachrichtigungen für den Podcast #{id} anzeigen und als gelesen markieren. | +| interact-as | Kann als Podcast #{id} interagieren und Nachrichten hinzufügen, teilen oder beantworten. | +| episodes.view | Kann das Dashboard und die Analysen des Podcasts #{id} anzeigen. | +| episodes.create | Kann Episoden für den Podcast #{id} erstellen. | +| episodes.edit | Kann den Podcast #{id} bearbeiten. | +| episodes.delete | Kann den Podcast #{id} löschen. | +| episodes.manage-persons | Kann Abonnements des Podcasts #{id} verwalten. | +| episodes.manage-clips | Kann Video-Clips oder Audio-Segmente des Podcasts #{id} verwalten. | +| episodes.manage-publications | Kann den Podcast #{id} veröffentlichen. | +| episodes.manage-comments | Kann Kommentare der Episode des Podcasts #{id} erstellen/löschen. | - + \ No newline at end of file diff --git a/docs/src/de/getting-started/docker.md b/docs/src/de/getting-started/docker.md index 3f119d4e..6cccd157 100644 --- a/docs/src/de/getting-started/docker.md +++ b/docs/src/de/getting-started/docker.md @@ -1,35 +1,28 @@ --- -title: Official Docker images +title: Offizielle Docker-Images sidebarDepth: 3 --- -# Offizielle Docker Images +# Offizielle Docker-Images -Castopod erstellt während des automatischen Build-Prozesses 3 Docker-Images auf -Docker Hub: +Während des automatischen Build-Prozesses lädt Castopod 3 Docker-Images in den Docker Hub hoch: -- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): Ein - umfassendes Castopod Image mit Nginx als Webserver -- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): Das App Paket mit - allen Castopod Abhängigkeiten -- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): Ein - Nginx Webserver für Castopod +- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): ein All-in-One Castopod-Image mit Nginx Unit +- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): das Anwendungs-Bundle mit allen Castopod-Abhängigkeiten +- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): eine Nginx-Konfiguration für Castopod -Außerdem benötigt Castopod eine MySQL-kompatible Datenbank. Eine Redis-Datenbank -kann als Cache-Handler hinzugefügt werden. +Zusätzlich benötigt Castopod eine mit MySQL kompatible Datenbank. Eine Redis-Datenbank kann als Cache-Manager hinzugefügt werden. ## Unterstützte Tags -- `develop` [unstable], neueste Updates des development Branches -- `beta` [stable], neueste Beta-Version -- `latest` [stable], die neuste Version -- `1.x.x` [stable], spezifische Version (seit `1.0.0`) +- `develop` [unstable], die neueste Version des Entwicklungszweigs +- `beta` [stable], die neueste Beta-Version +- `1.x.x` [stable], eine bestimmte Version (ab `1.0.0`) -## Beispiel +## Beispielnutzung -1. Installiere [Docker](https://docs.docker.com/get-docker/) und - [Docker-Compose](https://docs.docker.com/compose/install/) -2. Erstelle eine `docker-compose.yml` Datei mit folgendem Inhalt: +1. Installiere [docker](https://docs.docker.com/get-docker/) und [docker-compose](https://docs.docker.com/compose/install/) +2. Erstelle eine `docker-compose.yml`-Datei mit folgendem Inhalt: ```yml version: "3.7" @@ -87,15 +80,11 @@ kann als Cache-Handler hinzugefügt werden. castopod-db: ``` - Es müssen einige Variablen an deine Bedürfnisse angepasst werden (z.B. - `CP_BASEURL`, `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` und - `CP_ANALYTICS_SALT`). + Passe die Variablen (z.B. `CP_BASEURL`, `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` und `CP_ANALYTICS_SALT`) an deine Bedürfnisse an. -3. Einen Reverse-Proxy für TLS (SSL/HTTPS) einrichten +3. Erstelle einen Reverse Proxy für TLS (SSL/HTTPS) - TLS ist notwendig damit ActivityPub korrekt arbeiten kann. Dieser Job kann - leicht von einem Reverse-Proxy bearbeitet werden, zum Beispiel mit - [Caddy](https://caddyserver.com/): + TLS ist zum Betrieb von ActivityPub erforderlich. Dies kann einfach mit einem Reverse Proxy wie [Caddy](https://caddyserver.com/) realisiert werden: ``` #castopod @@ -104,58 +93,56 @@ kann als Cache-Handler hinzugefügt werden. } ``` -4. Führe `docker-compose up -d` aus, warte darauf, dass es initialisiert wird - und gehe auf `https://castopod.example.com/cp-install` um die Einrichtung - von Castopod abzuschließen! +4. Führe `docker-compose up -d` aus und warte, bis unter `https://castopod.example.com/cp-install` die Castopod-Konfiguration abgeschlossen ist! -5. Ist alles da? Dann kann das Podcasten beginnen! 🎙️🚀 +5. Du bist bereit, mit dem Podcasting zu beginnen! 🎙️🚀 ## Umgebungsvariablen -- **castopod/castopod** and **castopod/app** +- **castopod/castopod** und **castopod/app** - | Variablennamen | Typ (`Standard`) | Standardwert | - | ------------------------------------- | ----------------------- | ----------------- | - | **`CP_BASEURL`** | string | `nicht definiert` | - | **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` | - | **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` | - | **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` | - | **`CP_ANALYTICS_SALT`** | string | `nicht definiert` | - | **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` | - | **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` | - | **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` | - | **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` | - | **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` | - | **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` | - | **`CP_REDIS_HOST`** | ?string | `"localhost"` | - | **`CP_REDIS_PASSWORD`** | ?string | `null` | - | **`CP_REDIS_PORT`** | ?number | `6379` | - | **`CP_REDIS_DATABASE`** | ?number | `0` | - | **`CP_EMAIL_SMTP_HOST`** | ?string | `nicht definiert` | - | **`CP_EMAIL_FROM`** | ?string | `nicht definiert` | - | **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` | - | **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` | - | **`CP_EMAIL_SMTP_PORT`** | ?number | `25` | - | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` | - | **`CP_ENABLE_2FA`** | ?boolean | `nicht definiert` | - | **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` | - | **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` | - | **`CP_MEDIA_S3_KEY`** | ?string | `nicht definiert` | - | **`CP_MEDIA_S3_SECRET`** | ?string | `nicht definiert` | - | **`CP_MEDIA_S3_REGION`** | ?string | `nicht definiert` | - | **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` | - | **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` | - | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` | - | **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` | - | **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` | - | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | - | **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` | - | **`CP_TIMEOUT`** | ?number | `900` | + | Variablenname | Typ (`default`) | Standardwert | + | -------------------------------- | ---------------------- | -------------- | + | **`CP_BASEURL`** | string | `undefined` | + | **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` | + | **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` | + | **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` | + | **`CP_ANALYTICS_SALT`** | string | `undefined` | + | **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` | + | **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` | + | **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` | + | **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` | + | **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` | + | **`CP_CACHE_HANDLER`** | [`"file"` oder `"redis"`] | `"file"` | + | **`CP_REDIS_HOST`** | ?string | `"localhost"` | + | **`CP_REDIS_PASSWORD`** | ?string | `null` | + | **`CP_REDIS_PORT`** | ?number | `6379` | + | **`CP_REDIS_DATABASE`** | ?number | `0` | + | **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` | + | **`CP_EMAIL_FROM`** | ?string | `undefined` | + | **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` | + | **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` | + | **`CP_EMAIL_SMTP_PORT`** | ?number | `25` | + | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` oder `"ssl"`] | `"tls"` | + | **`CP_ENABLE_2FA`** | ?boolean | `undefined` | + | **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` | + | **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` | + | **`CP_MEDIA_S3_KEY`** | ?string | `undefined` | + | **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` | + | **`CP_MEDIA_S3_REGION`** | ?string | `undefined` | + | **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` | + | **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` | + | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` | + | **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` | + | **`CP_DISABLE_HTTPS`** | ?[`0` oder `1`] | `undefined` | + | **`CP_MAX_BODY_SIZE`** | ?number (mit Suffix) | `512M` | + | **`CP_PHP_MEMORY_LIMIT`** | ?number (mit Suffix) | `512M` | + | **`CP_TIMEOUT`** | ?number | `900` | - **castopod/web-server** - | Variablennamen | Typ | Standardwert | - | ---------------------- | --------------------- | ------------ | + | Variablenname | Typ | Standardwert | + | --------------------- | ----------------------| ------------ | | **`CP_APP_HOSTNAME`** | ?string | `"app"` | - | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | - | **`CP_TIMEOUT`** | ?number | `900` | + | **`CP_MAX_BODY_SIZE`** | ?number (mit Suffix) | `512M` | + | **`CP_TIMEOUT`** | ?number | `900` | \ No newline at end of file diff --git a/docs/src/de/getting-started/install.md b/docs/src/de/getting-started/install.md index 576b1eb9..43441393 100644 --- a/docs/src/de/getting-started/install.md +++ b/docs/src/de/getting-started/install.md @@ -5,222 +5,115 @@ sidebarDepth: 3 # Wie installiere ich Castopod? -Castopod ist für eine einfache Installation konzipiert. Ob dediziertes oder -Shared-Hosting, du kannst es auf den meisten PHP-MySQL-kompatiblen Webservern -installieren. +Castopod wurde entwickelt, um einfach zu installieren zu sein. Es kann auf den meisten PHP-MySQL-kompatiblen Webservern installiert werden, ob dediziert oder shared. -::: tip Note +::: tip Hinweis -Wir haben offizielle Docker Images für Castopod veröffentlicht! +Wir haben offizielle Docker-Images für Castopod veröffentlicht! -Wenn du Docker bevorzugst, kannst du die manuelle Anleitung überspringen und -direkt zur [Docker-Dokumentation](./docker.md) für Castopod gehen. +Wenn du Docker bevorzugst, kannst du diesen Teil überspringen und zur [Docker-Dokumentation](./docker.md) für Castopod gehen. ::: ## Voraussetzungen -- PHP v8.1 only +- PHP v8.1 - MySQL Version 5.7 oder höher oder MariaDB Version 10.2 oder höher - HTTPS-Unterstützung -- Eine [ntp-synchronisierte Uhr](https://wiki.debian.org/NTP) um die eingehenden - Anfragen zu überprüfen +- Eine [mit NTP synchronisierte Uhr](https://wiki.debian.org/NTP), um eingehende Anfragen der Föderation zu validieren -### PHP v8.1 only +### PHP v8.1 -PHP version 8.1 is required, with the following extensions installed: +Es wird PHP Version 8.1 benötigt, mit den folgenden installierten Erweiterungen: -- [intl](https://php.net/manual/en/intl.requirements.php) -- [libcurl](https://php.net/manual/en/curl.requirements.php) -- [mbstring](https://php.net/manual/en/mbstring.installation.php) -- [gd](https://www.php.net/manual/en/image.installation.php) mit **JPEG**, - **PNG** und **WEBP** Bibliotheken. -- [exif](https://www.php.net/manual/en/exif.installation.php) +- [intl](https://www.php.net/manual/de/intl.requirements.php) +- [libcurl](https://www.php.net/manual/de/curl.requirements.php) +- [mbstring](https://www.php.net/manual/de/mbstring.installation.php) +- [gd](https://www.php.net/manual/de/image.installation.php) mit den Bibliotheken **JPEG**, **PNG** und **WEBP**. +- [exif](https://www.php.net/manual/de/exif.installation.php) -Stelle außerdem sicher, dass die folgenden Erweiterungen in deinem PHP aktiviert -sind: +Stelle außerdem sicher, dass die folgenden Erweiterungen in deinem PHP aktiviert sind: -- json (standardmäßig aktiviert - nicht ausschalten) -- xml (standardmäßig aktiviert - nicht ausschalten) -- [mysqlnd](https://php.net/manual/en/mysqlnd.install.php) +- json (standardmäßig aktiviert - nicht deaktivieren) +- xml (standardmäßig aktiviert - nicht deaktivieren) +- [mysqlnd](https://www.php.net/manual/de/mysqlnd.install.php) -### MySQL kompatible Datenbank +### MySQL-kompatible Datenbank -> Wir empfehlen [MariaDB](https://mariadb.org). +> Wir empfehlen die Verwendung von [MariaDB](https://mariadb.org). -::: warning Warning +::: warning Achtung -Castopod funktioniert nur mit unterstützten MySQL 5.7 oder höher kompatiblen -Datenbanken. Es wird zum Beispiel mit dem vorherigen MySQL v5.6 nicht mehr -funktionieren, dessen Lebensende am 5. Februar 2021 war. +Castopod funktioniert nur mit MySQL-Datenbanken ab Version 5.7. Ältere Versionen wie 5.6 (der Support wurde am 5. Februar 2021 eingestellt) werden nicht funktionieren. ::: -Du benötigst den Servernamen, den Datenbanknamen, den Benutzernamen und das -Passwort, um den Installationsvorgang abzuschließen. Kontaktiere bitte den -Administrator, falls du keinen Benutzeraccount hast. +Du benötigst den Hostnamen des Servers, den Datenbanknamen, den Benutzernamen und das Passwort, um den Installationsprozess abzuschließen. Wenn du diese Informationen nicht hast, kontaktiere bitte deinen Administrator. -#### Berechtigungen +#### Zugriffsberechtigungen -Benutzer müssen mindestens diese Berechtigungen in der Datenbank haben, damit -Castopod funktioniert: `CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, -`INSERT`, `SELECT`, `UPDATE`, `REFERENCES`, `CREATE VIEW`. +Der Benutzer muss mindestens die folgenden Zugriffsberechtigungen auf die Datenbank haben, damit Castopod funktioniert: `CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`, `UPDATE`, `REFERENCES`, `CREATE VIEW`. ### (Optional) FFmpeg v4.1.8 oder höher für Videoclips -[FFmpeg](https://www.ffmpeg.org/) Version 4.1.8 oder höher ist erforderlich, -wenn Du Videoclips generieren möchtest. Die folgenden Php-Erweiterungen sind -nicht installiert: %s: +[FFmpeg](https://www.ffmpeg.org/) in Version 4.1.8 oder höher wird benötigt, wenn du Videoclips generieren möchtest. Die folgenden Erweiterungen müssen installiert sein: -- **FreeType 2** Bibliothek für - [gd](https://www.php.net/manual/en/image.installation.php). +- Die **FreeType 2**-Bibliothek für [gd](https://www.php.net/manual/de/image.installation.php). ### (Optional) Weitere Empfehlungen -- Redis für bessere Cache-Leistungen. -- CDN für das Caching statischer Dateien und bessere Leistungen. -- E-Mail Server Anbindung für E-Mails zu verlorenen Passwörtern. +- Redis für bessere Cache-Performance +- CDN zur Cache-Speicherung statischer Dateien und für bessere Performance +- E-Mail-Gateway für verlorene Passwörter ## Installationsanleitung ### Voraussetzungen -0. Get a Web Server with [requirements](#requirements) installed -1. Create a MySQL database for Castopod with a user having access and - modification privileges (for more info, see - [MySQL compatible database](#mysql-compatible-database)). -2. Activate HTTPS on your domain with an _SSL certificate_. -3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto - the web server if you haven’t already. - - ⚠️ Set the web server document root to the `public/` sub-folder within the - `castopod` folder. -4. Add **cron tasks** on your web server for various background processes - (replace the paths accordingly): +0. Beschaffe einen Webserver mit den [Voraussetzungen](#voraussetzungen) installiert +1. Erstelle eine MySQL-Datenbank für Castopod mit einem Benutzer mit Schreib- und Zugriffsrechten (Weitere Informationen findest du unter [MySQL-kompatible Datenbank](#mysql-kompatible-datenbank)). +2. Aktiviere HTTPS für deine Domain mit einem _SSL-Zertifikat_. +3. Lade das neueste [Castopod-Paket](https://castopod.org/) herunter und entpacke es auf deinem Webserver, falls noch nicht geschehen. + - ⚠️ Setze das Hauptdokument des Webservers auf den Unterordner `public/` des `castopod`-Ordners. + +4. Füge **Cron-Jobs** auf deinem Webserver für verschiedene Hintergrundprozesse hinzu (ersetze die Pfade entsprechend): ```bash * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1 ``` - **Note** - If you do not add this cron task, the following Castopod features - will not work: + **Hinweis** - Wenn du diesen Cron-Job nicht hinzufügst, werden folgende Castopod-Funktionen nicht funktionieren: - - Importing a podcast from an existing RSS feed - - Broadcasting social activities to your followers in the fediverse - - Broadcasting episodes to open hubs using - [WebSub](https://en.wikipedia.org/wiki/WebSub) - - Generating video clips - - [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips) + - Importieren eines Podcasts aus einem vorhandenen RSS-Feed + - Teilen von sozialen Aktivitäten an deine Follower im Fediverse + - Veröffentlichen von Episoden an offene Hubs mit Hilfe von [WebSub](https://en.wikipedia.org/wiki/WebSub) + - Generieren von Videoclips - [benötigt FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips) -### (recommended) Install Wizard +### (Empfohlen) Installationsassistent -1. Run the Castopod install script by going to the install wizard page - (`https://your_domain_name.com/cp-install`) in your favorite web browser. -2. Follow the instructions on your screen. -3. Start podcasting! +1. Rufe das Castopod-Installations-Skript mit deinem bevorzugten Webbrowser auf, indem du die Installationsseite aufrufst (`https://your_domain_name.com/cp-install`). +2. Befolge die angezeigten Anweisungen. +3. Fang an zu podcasten! -::: info Note +:::info Hinweis -The install script writes a `.env` file in the package root. If you cannot go -through the install wizard, you can create and edit the `.env` file manually -based on the `.env.example` file. +Das Installations-Skript erstellt eine `.env`-Datei in der Wurzel des Pakets. Wenn du den Installationsassistenten nicht verwenden kannst, kannst du die `.env`-Datei manuell anhand der `.env.example`-Datei erstellen und bearbeiten. ::: -### Email/SMTP setup +### E-Mail/SMTP-Konfiguration -Email configuration is required for some features to work properly (eg. -retrieving your forgotten password, sending instructions to premium subscribers, -…) +Die E-Mail-Konfiguration ist erforderlich, damit bestimmte Funktionen ordnungsgemäß funktionieren (z. B. das Abrufen deines vergessenen Passworts, das Senden von Anweisungen an Premium-Abonnenten, ...). -You may add your email configuration in your instance's `.env` like so: +Du kannst deine E-Mail-Konfiguration in der `.env`-Datei deiner Instanz wie folgt hinzufügen: ```ini # […] -# […] - -email.fromEmail="your_email_address" -email.SMTPHost="your_smtp_host" -email.SMTPUser="your_smtp_user" -email.SMTPPass="your_smtp_password" +email.fromEmail="deine_e-mail_adresse" +email.SMTPHost="dein_smtp_host" +email.SMTPUser="dein_smtp_benutzer" +email.SMTPPass="dein_smtp_passwort" ``` -#### Email config options - -| Variable name | Type | Default | -| ---------------- | -------------------- | ------------ | -| **`fromEmail`** | string | `undefined` | -| **`fromName`** | string | `"Castopod"` | -| **`SMTPHost`** | string | `undefined` | -| **`SMTPUser`** | string | `undefined` | -| **`SMTPPass`** | string | `undefined` | -| **`SMTPPort`** | number | `25` | -| **`SMTPCrypto`** | [`"tls"` or `"ssl"`] | `"tls"` | - -### Media storage - -By default, files are saved to the `public/media` folder using the file system. -If you need to relocate the `media` folder to a different location, you can -specify it in your `.env` file as shown below: - -```ini -# […] - -media.root="media" -media.storage="/mnt/storage" -``` - -In this example, the files will be saved to the /mnt/storage/media folder. Make -sure to also update your web server configuration to reflect this change. - -### S3 - -If you prefer storing your media files on an S3 compatible storage, you may -specify it in your `.env`: - -```ini -# […] - -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" -``` - -#### S3 config options - -| Variable name | Type | Default | -| ----------------------- | ------- | ----------- | -| **`endpoint`** | string | `undefined` | -| **`key`** | string | `undefined` | -| **`secret`** | string | `undefined` | -| **`region`** | string | `undefined` | -| **`bucket`** | string | `castopod` | -| **`protocol`** | number | `undefined` | -| **`pathStyleEndpoint`** | boolean | `false` | -| **`keyPrefix`** | string | `undefined` | - -## Community packages - -If you don't want to bother with installing Castopod manually, you may use one -of the packages created and maintained by the open-source community. - -### Install with YunoHost - -[YunoHost](https://yunohost.org/) is a distribution based on Debian GNU/Linux -made up of free and open-source software packages. It manages the hardships of -self-hosting for you. - -
- - - Install Castopod with YunoHost - - -Github -Repo - -
+#### E \ No newline at end of file diff --git a/docs/src/de/getting-started/security.md b/docs/src/de/getting-started/security.md index b2886641..c8891f3b 100644 --- a/docs/src/de/getting-started/security.md +++ b/docs/src/de/getting-started/security.md @@ -2,27 +2,20 @@ title: Sicherheit --- -# Sicherheitsbedenken +# Sicherheitsfragen -Castopod wurde mittels [CodeIgniter4](https://codeigniter.com/) (einem PHP -Framework) gebaut, welches -[gute Sicherheitspraktiken](https://codeigniter.com/user_guide/concepts/security.html) -fördert. +Castopod wird auf [CodeIgniter4](https://codeigniter.com/) entwickelt, einem PHP-Framework, das zu "Best Practices" in Bezug auf Sicherheit ermutigt. -Um die Sicherheit Ihrer Instanz zu erhöhen und bösartige Angriffe zu verhindern, -empfehlen wir, alle deine Castopod-Dateiberechtigungen nach der Installation -oder dem Updaten zu aktualisieren (um Fehler bei der vorherigen Berechtigung zu -vermeiden): +Um die Sicherheit Ihrer Instanz optimal zu gewährleisten und böswillige Angriffe zu verhindern, empfehlen wir Ihnen, die Dateiberechtigungen von Castopod nach der Installation und jedem Update zu aktualisieren (und Fehler im Dateizugriff zu vermeiden): -- der `writable/` Ordner muss **lesbar** und **beschreibbar** sein. -- `public/media/` muss **lesbar** und **beschreibbar** sein. -- jede andere Datei muss nur **lesbar** sein. +- Der Ordner `writable/` muss sowohl **lese- als auch schreibbar** sein. +- Der Ordner `public/media/` muss sowohl **lese- als auch schreibbar** sein. +- Alle anderen Dateien sollten nur **lesbar** sein. -Wenn Sie beispielsweise Apache oder NGINX mit Ubuntu verwenden, können Sie -folgendermaßen vorgehen: +Wenn Sie beispielsweise Apache oder NGINX mit Ubuntu verwenden, können Sie die folgenden Befehle ausführen: ```bash sudo chown -R root:root /path/to/castopod sudo chown -R www-data:www-data /path/to/castopod/writable sudo chown -R www-data:www-data /path/to/castopod/public/media -``` +``` \ No newline at end of file diff --git a/docs/src/de/getting-started/update.md b/docs/src/de/getting-started/update.md index 98e019fb..742aee1b 100644 --- a/docs/src/de/getting-started/update.md +++ b/docs/src/de/getting-started/update.md @@ -3,107 +3,93 @@ title: Update sidebarDepth: 3 --- -# How to update Castopod? +# Wie installiere ich Castopod? -After installing Castopod, you may want to update your instance to the latest -version in order to enjoy the latest features ✨, bug fixes 🐛 and performance -improvements ⚡. +Nach der Installation von Castopod können Sie Ihre Instanz auf die neueste Version aktualisieren, um von den neuesten Funktionen ✨, Bugfixes 🐛 und Leistungsverbesserungen ⚡ zu profitieren. -## Update instructions +## Update-Anweisungen -0. ⚠️ Before any update, we highly recommend you backup your Castopod files and - database. +0. ⚠️ Bevor Sie ein Update durchführen, empfehlen wir Ihnen dringend, Ihre Castopod-Dateien und die Datenbank zu sichern. - - cf. + - siehe [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) -1. Go to the - [releases page](https://code.castopod.org/adaures/castopod/-/releases) and - see if your instance is up to date with the latest Castopod version +1. Gehen Sie zur + [Releases-Seite](https://code.castopod.org/adaures/castopod/-/releases) und + prüfen Sie, ob Ihre Instanz mit der neuesten Castopod-Version aktuell ist. - - cf. + - siehe [Where can I find my Castopod version?](#where-can-i-find-my-castopod-version) -2. Download the latest release package named `Castopod Package`, you may choose - between the `zip` or `tar.gz` archives +2. Laden Sie das neueste Release-Paket mit dem Namen "Castopod Package" herunter. Sie können zwischen den Archiven `zip` oder `tar.gz` wählen. - - ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code - - Note that you can also download the latest package from - [castopod.org](https://castopod.org/) + - ⚠️ Stellen Sie sicher, dass Sie das Castopod Package herunterladen und **NICHT** den Source Code. + - Beachten Sie, dass Sie das neueste Paket auch von + [castopod.org](https://castopod.org/) herunterladen können. -3. On your server: +3. Auf Ihrem Server: - - Remove all files except `.env` and `public/media` - - Copy the new files from the downloaded package into your server + - Löschen Sie alle Dateien außer `.env` und `public/media`. + - Kopieren Sie die neuen Dateien aus dem heruntergeladenen Paket auf Ihren Server. - ::: info Note + ::: info Hinweis - You may need to reset files permissions as during the install process. - Check [Security Concerns](./security.md). + Möglicherweise müssen Sie die Dateiberechtigungen neu festlegen, wie beim Installationsprozess bereits durchgeführt. Siehe + [Sicherheitshinweise](./security.md). ::: -4. Update your database schema from your `Castopod Admin` > `About` page or by - running: +4. Aktualisieren Sie das Datenbankschema über die Seite `Castopod Admin` > `About` oder führen Sie folgenden Befehl aus: ```bash php spark castopod:database-update ``` -5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > - `Housekeeping` -6. ✨ Enjoy your fresh instance, you're all done! +5. Leeren Sie Ihren Cache über `Castopod Admin` > `Settings` > `general` > + `Housekeeping`. +6. ✨ Genießen Sie Ihre neue Instanz, Sie sind fertig! -::: info Note +::: info Hinweis -Releases may come with additional update instructions (see -[releases page](https://code.castopod.org/adaures/castopod/-/releases)). +Es kann sein, dass den Versionen zusätzliche Update-Anweisungen beigefügt werden (siehe +[Releases-Seite](https://code.castopod.org/adaures/castopod/-/releases)). -- cf. - [I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do) +- siehe + [Ich habe meine Instanz seit langer Zeit nicht mehr aktualisiert ... Was sollte ich tun?](#je-nai-pas-mis-à-jour-mon-instance-depuis-longtemps-que-devrais-je-faire) ::: -## Fully Automated updates +## Vollständig automatisierte Updates -> Coming soon... 👀 +> Kommt bald... 👀 -## Frequently asked questions (FAQ) +## Häufig gestellte Fragen (FAQ) -### Where can I find my Castopod version? +### Wo finde ich meine Castopod-Version? -Go to your Castopod admin panel, the version is displayed on the bottom left -corner. +Gehen Sie zu Ihrem Castopod-Administrationspanel. Die Version wird unten links angezeigt. -Alternatively, you can find the version in the `app > Config > Constants.php` -file. +Sie können die Version auch in der Anwendung unter +`> Configuration > Constantes.php`-Ordner finden. -### I haven't updated my instance in a long time… What should I do? +### Ich habe meine Instanz seit langer Zeit nicht mehr aktualisiert ... Was sollte ich tun? -No problem! Just get the latest release as described above. Only, when going -through the release instructions (4), perform them sequentially, from the oldest -to the newest. +Kein Problem! Holen Sie sich einfach die neueste Version wie oben beschrieben. Wenn Sie die Update-Anweisungen (Punkt 4) ausführen, starten Sie sie der Reihe nach von der ältesten zur neuesten Version. -> You may want to backup your instance depending on how long you haven't updated -> Castopod. +> Sie sollten Ihre Instanz entsprechend dem Datum Ihres letzten Castopod-Updates sichern. -For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to -`v1.0.0-beta.1`: +Zum Beispiel, wenn Sie auf `v1.0.0-alpha.42` sind und auf `v1.0.0-beta.1` aktualisieren möchten: -0. (highly recommended) Make a backup of your files and database. +0. (stark empfohlen) Sichern Sie Ihre Dateien und Datenbank. -1. Download the latest release, overwrite your files whilst keeping `.env` and - `public/media`. +1. Laden Sie die neueste Version herunter und ersetzen Sie Ihre Dateien, wobei Sie `.env` und `public/media` beibehalten. -2. Go through each release update instructions sequentially (from oldest to - newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`, - `v1.0.0-alpha.45`, …, `v1.0.0-beta.1`. +2. Führen Sie die Update-Anweisungen einzeln aus (von der ältesten zur neuesten Version). -3. ✨ Enjoy your fresh instance, you're all done! +3. ✨ Ihre neue Instanz ist bereit! -### Should I make a backup before updating? +### Sollte ich vor dem Update eine Sicherungskopie erstellen? -We advise you do, so you don't lose everything if anything goes wrong! +Wir empfehlen Ihnen, dies zu tun, um möglichen Datenverlust zu vermeiden! -More generally, we advise you make regular backups of your Castopod files and -database to prevent you from losing it all… +Im Allgemeinen empfehlen wir Ihnen, regelmäßig Sicherungen Ihrer Castopod-Dateien und Ihrer Datenbank zu erstellen, um keine Daten zu verlieren... \ No newline at end of file diff --git a/docs/src/de/index.md b/docs/src/de/index.md index 54c21377..d61b4144 100644 --- a/docs/src/de/index.md +++ b/docs/src/de/index.md @@ -1,4 +1,5 @@ --- + sidebarDepth: 2 --- @@ -6,294 +7,115 @@ sidebarDepth: 2 [![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![stars-badge]][stars] -Castopod ist eine freie & Open-Source-Hosting-Plattform für Podcastende, die ihr -Publikum einbinden und mit ihnen interagieren möchten. +Castopod ist eine kostenlose und Open-Source-Hosting-Plattform, die für Podcaster entwickelt wurde, die mit ihrem Publikum kommunizieren und interagieren möchten. -Castopod ist einfach zu installieren und wurde auf -[CodeIgniter4](https://codeigniter.com/) aufgebaut, ein mächtiges PHP Framework, -mit einem sehr kleinen Fußabdruck. +Castopod ist einfach zu installieren und wurde mit [CodeIgniter4](https://codeigniter.com/), einem leistungsstarken PHP-Framework in sehr kleinem Umfang, entwickelt. -## Merkmale +## Eigenschaften -- 🌱 Kostenlos & Open-Source (AGPL v3 Lizenz) -- 🔐  Fokussiert auf die Datensouveränität: Ihre Inhalte, Ihr Publikum und - Analysen gehören zu Ihnen, und nur Ihnen  -- 🪄  Podcasting 2.0 features: GUID, locked, transcripts, funding, - chapters, location, persons, soundbites, … -- 💬  Built-in social network: - - 🚀  Castopod is part of the Fediverse, a decentralized social network - - ❤️  Create posts, share, favourite, and comment on episodes -- 📈  Built-in analytics: - - ⚖️  GDPR / CCPA / LGPD compliant - - 🪙  Standard IABv2 audience measurement - - 🏡  On-premises analytics, no third party involved -- 📢  Built-in marketing tools: - - ✅  SEO ready (open-graph meta-tags, JSON-LD, …) - - 📱  PWA: install as a standalone app - - 🎨  Customizable theme colors - - 🎬  Generate ready-to-share Video clips from episodes - - 🔉  Generate soundbites - - ▶️  Embeddable player, embed your episodes on any website -- 💸  Monetization: - - 🔗  Funding links - - 📲  listen-to-click ads +- 🌱  Frei, kostenlos und Open-Source (Lizenz AGPL v3) +- 🔐  fokussiert auf Datenhoheit: Dein Inhalt, Deine Zuhörer und Deine Statistiken gehören dir und nur dir +- 🪄 Podcasting 2.0 Funktionen: GUIDs, Sperren, Transkriptionen, Finanzierung, Kapitel, Geolokalisierung, Teilnehmer, Audio-Extrakte, ... +- 💬  Integriertes soziales Netzwerk: + - 🚀  Castopod ist Teil des Fediverse, ein dezentrales soziales Netzwerk + - ❤️  Erstellen von Beiträgen, Teilen, Favorisieren und Kommentieren von Episoden +- 📈  Integrierte Statistiken: + - ⚖️  Konform mit GDPR / CCPA / LGPD + - 🪙 IABv2-Zielgruppenmessung + - 🏡  Integrierte Statistiken, keine Drittanbieter +- 📢  Integrierte Marketingtools: + - ✅  SEO-Bereitstellung (Open-Graph-Metatags, JSON-LD, ...) + - 📱  PWA: Installieren als eigenständige App + - 🎨  Anpassbare Themenfarben + - 🎬  Erstellen Sie Videoschnipsel, die Sie freigeben können, aus Episoden + - 🔉  Erstellen Sie Audio-Extrakte + - ▶️  Binden Sie Ihre Episoden in jede Website ein +- 💸  Monetarisierung: + - 🔗  Finanzierungslinks + - 📲  Werbung "listen-to-click" - 🤝  value4value / WebMonetization - - 💎  Premium podcasts -- 📡  Publish your episodes everywhere with RSS: - - 📱  On all indexes and apps: Podcast Index, Apple Podcasts, Spotify, - Google Podcasts, Deezer, Podcast Addict, Podfriend, … - - ⚡  Broadcast your episodes instantly with WebSub -- 📥  Podcast import: move your existing podcast into Castopod -- 📤  Move your podcast out of Castopod -- 🔀  Multi-tenant: host as many podcasts as you want -- 👥  Multi-user: add contributors and set roles -- 🌎  i18n support: translated in English, French, Polish, German, - Brazilian Portuguese & Spanish… with - [more to come](https://translate.castopod.org)! + - 💎  Premium-Podcasts +- 📡 Veröffentlichen Sie Ihre Episoden überall mit RSS: + - 📱  Auf allen Indizes und Apps: Podcast Index, Podcasts Apple, Spotify, Google Podcasts, Deezer, Podcast Addict, Podfriend ... + - ⚡ Streamen Sie Ihre Episoden sofort mit WebSub +- 📥  Import von Podcasts: Ziehen Sie Ihren vorhandenen Podcast zu Castopod um +- 📤  Ziehen Sie Ihren Podcast zu einem anderen Hosting-Dienstleister um +- 🔀  Mehrmandantenfähigkeit: Hosten Sie so viele Podcasts, wie Sie möchten +- 👥  Mehrbenutzerfähigkeit: Fügen Sie Mitwirkende hinzu und definieren Sie ihre Rollen +- 🌍  i18n-Unterstützung: Übersetzt in Englisch, Französisch, Polnisch, Deutsch, Portugiesisch, Brasilianisch und Spanisch... und + [mehr in Zukunft](https://translate.castopod.org)! -## Motivation +## Warum Castopod? -The podcasting ecosystem is decentralized by nature: you can create your podcast -as an RSS file, publish it on the web and have it shared everywhere online. +Der Podcasting-Ökosystem ist von Natur aus dezentralisiert: Du kannst deinen Podcast als RSS-Datei erstellen, ihn im Web veröffentlichen und überall im Internet teilen. -It is in fact one of the only media to have stayed this way for a long time. +In der Tat ist es eines der wenigen Medien, die seit langem auf diese Weise geblieben sind. -As usages are evolving, more and more people are getting into podcasts: whether -it is creators finding new ways to share their ideas, or listeners in the search -for better content. +Da sich die Gewohnheiten ändern, steigen immer mehr Menschen in Podcasts ein: sei es Kreative, die neue Wege suchen, um ihre Ideen zu teilen, oder Hörer, die nach besseren Inhalten suchen. -With podcasting becoming more widely used, some companies are trying to shift it -towards a more controlled and centralized medium. +Mit der zunehmenden Verbreitung von Podcasts versuchen einige Unternehmen, ihn in ein kontrollierteres und zentralisiertes Medium zu verwandeln. -Castopod was created in an effort to provide an open and sustainable alternative -to hosting your podcasts, promoting decentralization to ensure that podcasters -creativity can express itself. +Castopod wurde geschaffen, um eine offene und nachhaltige Alternative zum Hosting von Podcasts zu bieten und die Dezentralisierung zu fördern, um die Kreativität der Podcaster zum Ausdruck zu bringen. -This project is pushed by the open-source community, and specifically by the -[Fediverse](https://fediverse.party/en/fediverse/) and -[Podcasting 2.0](https://podcastindex.org/) movements. +Dieses Projekt wird von der Open-Source-Community vorangetrieben, insbesondere von der [Fediverse](https://fediverse.party/en/fediverse/)- und Podcasting 2.0-Bewegungen. -## Vergleiche mit anderen Lösungen +## Vergleich mit anderen Lösungen -We believe that a solution is not necessarily right for everyone, it highly -depends on your needs. So, here are comparisons with other tools to help you to -gauge whether Castopod is the right fit for you. +Wir glauben, dass nicht jede Lösung für jeden geeignet ist, sondern stark von deinen Bedürfnissen abhängt. Hier findest du Vergleiche mit anderen Tools, um herauszufinden, ob Castopod das Richtige für dich ist. ### Castopod vs Wordpress -Castopod is often referred to as "the Wordpress for podcasts" because of the -similarities between the two. In some ways this is true. And actually, Castopod -was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption -from the community and the number of websites running it. +Castopod wird oft als "das Wordpress für Podcasts" bezeichnet, aufgrund der Ähnlichkeiten zwischen den beiden. In gewisser Weise stimmt das. Tatsächlich wurde Castopod stark von der Wordpress-Umgebung inspiriert, da die Community die Leichtigkeit der Nutzung und die Vielzahl der damit betriebenen Websites erkannte. -Just like Wordpress, Castopod is free & open source, built using PHP with a -MySQL database and is packaged in a way that you can easily install on most web -servers. +Genau wie bei Wordpress ist Castopod kostenlos und Open Source. Es wird mit PHP und einer MySQL-Datenbank entwickelt und kann einfach auf den meisten Webserven installiert werden. -Wordpress is a great way to create your website and extend it with plugins to -get what you want. It is a full fledged CMS that helps you get any type of -website online. +Wordpress ist eine großartige Möglichkeit, deine Website zu erstellen und mit Plugins zu erweitern, um das zu erhalten, was du willst. Es ist ein vollwertiges Content-Management-System, mit dem du jede Art von Website online stellen kannst. -On the other hand, Castopod is meant to address the podcasters needs -specifically, focusing on podcasting, and nothing else. You don't need any -plugin to get you started on your podcasting journey. +Castopod dagegen ist darauf ausgelegt, speziell die Bedürfnisse der Podcaster zu erfüllen und sich ausschließlich auf das Podcasting zu konzentrieren. Du benötigst kein Plugin, um mit deinem Podcasting-Projekt zu beginnen. -This allows optimizing the processes specific to podcasting: ranging from the -creation of your podcasts and the publication of new episodes all the way to -broadcasting, marketing and analytics. +Dadurch können die spezifischen Prozesse des Podcastings optimiert werden: von der Erstellung deiner Podcasts und der Veröffentlichung neuer Episoden bis hin zur Verbreitung, Vermarktung und Analyse. -Finally, depending on your needs, Wordpress and Castopod can even live side by -side as they share the same requirements! +Je nach Bedarf können Wordpress und Castopod sogar nebeneinander existieren, da sie dieselben Anforderungen teilen! -### Castopod vs Funkwale +### Castopod vs Funkwhale -Funkwhale is a self-hosted, modern free and open-source music server. Just as -Castopod, Funkwhale is on the fediverse, a decentralized social network allowing -interoperability between the two. +Funkwhale ist ein selbst gehosteter, moderner, kostenloser und Open Source Musikserver. Wie Castopod gehört Funkwhale zum Fediverse, einem dezentralen sozialen Netzwerk, das die Interoperabilität zwischen den beiden ermöglicht. -Funkwhale was initially built around music. And later on, as the project -evolved, the ability to host podcasts was introduced. +Funkwhale wurde ursprünglich für Musik entwickelt. Später wurde die Möglichkeit, Podcasts zu hosten, eingeführt. -Unlike Funkwhale, Castopod has been designed and built around podcasting -exclusively. This allows easier implementation for features related to the -podcasting ecosystem, such as the podcasting 2.0 features (transcripts, -chapters, locations, persons, …). +Im Gegensatz zu Funkwhale wurde Castopod speziell für das Podcasting entwickelt. Dies erleichtert die Implementierung von Funktionen, die mit dem Podcasting-Ökosystem verbunden sind, wie z.B. die Funktionen von Podcasting 2.0 (Transkripte, Kapitel, Orte, Personen, ...). -So, you should probably use Funkwhale if you want to host your music, and use -Castopod if you want to host your podcasts. +Wenn du also deine Musik hosten möchtest, solltest du wahrscheinlich Funkwhale verwenden. Wenn du jedoch deine Podcasts hosten möchtest, solltest du Castopod verwenden. -### Castopod vs other podcast hosts +### Castopod vs andere Podcast-Hoster -There are many solutions for you to host your podcasts, some of which are really -great and [a lot of them](https://podcastindex.org/apps) are jumping into the -Podcasting 2.0 wagon just like Castopod! +Es gibt viele Lösungen, um deine Podcasts zu hosten. Einige davon sind wirklich großartig und [viele von ihnen](https://podcastindex.org/apps) springen genauso wie Castopod auf den Podcasting-2.0-Zug! -Each of these solutions differ from one another, you may compare with the -[list of features](#features). +Jede dieser Lösungen unterscheidet sich voneinander. Du kannst sie anhand der [Feature-Liste](#-features) vergleichen. -That being said, there are two main differences with other podcasting solutions: +Das heißt, es gibt zwei Hauptunterschiede zu anderen Podcasting-Lösungen: -- Castopod can be self-hosted and is the only solution that allows you to keep - full control over what you produce. Also, as it is open-source, you can even - customize it as you wish. +- Castopod kann selbst gehostet werden und ist die einzige Lösung, mit der du die vollständige Kontrolle über das behältst, was du produzierst. Da es Open Source ist, hast du die Möglichkeit, es nach Belieben anzupassen. -- Castopod is the only solution that currently integrates both a decentralized - social network with ActivityPub as well as many of the podcasting 2.0 - features, hoping to bridge the gap between the two. +- Castopod ist die einzige Lösung, die heute eine dezentrale soziale Plattform mit ActivityPub und "Podcasting 2.0" -Funktionen integriert und so die Kluft zwischen den beiden verringert. -## Contributing +## Mitwirken -Love Castopod and would like to help? Take a look at the following documentation -to get you started. +Liebst du Castopod und möchtest helfen? Schau dir die folgende Dokumentation an, um loszulegen. -### Code of conduct +### Code of Conduct -Castopod has adopted a Code of Conduct that we expect project participants to -adhere to. Please read the -[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md) -so that you can understand what actions will and will not be tolerated. +Castopod hat einen Verhaltenskodex angenommen, an den sich Projektteilnehmer halten sollen. Bitte lese die [CODE_OF_CONDUCT-Anleitung](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md), damit du verstehst, welche Aktionen toleriert werden und welche nicht. -### Contributing guide +### Beitragshinweise -Read our [contributing guide](./contributing/guidelines.md) to learn about our -development process, how to propose bugfixes and improvements, and how to build -and test your changes to Castopod. +Lies unseren [Leitfaden zur Mitarbeit](./contributing/guidelines.md), um mehr über unseren Entwicklungsprozess, das Einreichen von Bugfixes und Verbesserungsvorschlägen sowie das Erstellen und Testen von Änderungen in Castopod zu erfahren. -## Contributors ✨ +## Beitragende ✨ -Thanks goes to these wonderful people -([emoji key](https://allcontributors.org/docs/en/emoji-key)): - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Yassine Doghri
Yassine Doghri

💻 🐛 📖 👀 🚧 🖋 🎨 ️️️️♿️ 🌍 💬 🧑‍🏫 🚇 🤔 📆 📝
Benjamin Bellamy
Benjamin Bellamy

💻 🐛 👀 🖋 🌍 💬 🚇 🤔 📝 📆 📢
Ola Hneini
Ola Hneini

💻 👀 📖 🚧 💬 🤔
Romain de Laage
Romain de Laage

💻 🚇 📖 🌍 🤔
Lyonel Bernard
Lyonel Bernard

🐛 💬 🔊 🤔
Christopher Lagonick-Weitzel
Christopher Lagonick-Weitzel

🐛 💬 🔊 🤔
Ernesto Acosta
Ernesto Acosta

🐛 🔊 🌍 💬 🤔
Bastien Luneteau
Bastien Luneteau

💻 🐛
Cécile Ricordeau
Cécile Ricordeau

🎨
Patryk Miś
Patryk Miś

🌍
Marcin Lewandowski
Marcin Lewandowski

🐛 🤔
Sebastian Janik
Sebastian Janik

💻
Patryk Karczmarczyk
Patryk Karczmarczyk

💻
denis d
denis d

🐛 🤔
Douglas Kastle
Douglas Kastle

🐛 🤔
cExplorer
cExplorer

🐛 🌍
ImaCrea
ImaCrea

🐛 🤔
Jonas S
Jonas S

💻
LEFEBVRE Yann
LEFEBVRE Yann

🐛
Sebastian Späth
Sebastian Späth

🐛 🤔
rocky III
rocky III

🐛
Hermann Josef Eckl
Hermann Josef Eckl

🐛
Delhaye Cyrille
Delhaye Cyrille

🐛 🤔
João Leandro
João Leandro

🌍 🤔
Angelos Chouvardas
Angelos Chouvardas

🌍
Eivind
Eivind

🌍
Ewen
Ewen

🌍 🤔
forght
forght

🌍
glottis0q
glottis0q

🌍
ButterflyOfFire
ButterflyOfFire

🌍
Lucian I. Last
Lucian I. Last

🌍
LuuzViir
LuuzViir

🌍
CTHTC
CTHTC

🌍
Russian Retro
Russian Retro

🌍
Marek L'ach
Marek L'ach

🌍
GunChleoc
GunChleoc

🌍
GabiSnow
GabiSnow

🌍
bendaha
bendaha

🌍
Samuel Roland
Samuel Roland

🌍
Dimitri Regnier
Dimitri Regnier

🤔
irithys
irithys

🌍
Sergi
Sergi

🌍
ghose (XoseM)
ghose (XoseM)

🌍
Andreas Olsson
Andreas Olsson

🌍
leonfrom
leonfrom

🌍
agentcobra
agentcobra

🌍
Alessandro
Alessandro

🌍
liimee
liimee

🌍
Ahmed Sabouni
Ahmed Sabouni

🌍
KrzysztofDomanczyk
KrzysztofDomanczyk

💻
- - - - - - -This project follows the -[all-contributors](https://github.com/all-contributors/all-contributors) -specification. Contributions of any kind welcome! - -## Contact - -You may reach us for help or ask any question you have on: - -- [Discord](https://castopod.org/discord) (for direct interaction with - developers and the community) -- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for - feature requests & bug reports) - -Alternatively, you can follow us on social media platforms to get news about -Castopod: - -- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance) -- [Twitter](https://twitter.com/castopod) -- [LinkedIn](https://linkedin.com/company/castopod) -- [Facebook](https://www.facebook.com/castopod) - -## Sponsors - -The ongoing development of Castopod is made possible with the support of its -backers. If you'd like to help, please consider -[sponsoring Castopod's development](https://opencollective.com/castopod/contribute). - -
- Ad Aures Logo - NLnet Logo -
- -## License - -[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/) - -Copyright © 2020-present, [Ad Aures](https://adaures.com/). -https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release -https://img.shields.io/github/license/ad-aures/castopod?color=blue -https://img.shields.io/badge/contributions-welcome-brightgreen.svg -https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg -https://img.shields.io/github/stars/ad-aures/castopod?style=social - -[release]: https://code.castopod.org/adaures/castopod/-/releases -[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md -[contributions]: https://code.castopod.org/adaures/castopod/-/issues -[semantic-release]: https://github.com/semantic-release/semantic-release -[discord]: https://castopod.org/discord -[stars]: https://github.com/ad-aures/castopod/stargazers -[crowdin]: https://translate.castopod.org/project/castopod +Ein großer Dank geht an diese wunderbaren Menschen +([emoji key](https://allcontributors.org/docs/en/emoji-key)): \ No newline at end of file diff --git a/docs/src/el/contributing/_category_.json b/docs/src/el/contributing/_category_.json index e12f1ce5..4355c940 100644 --- a/docs/src/el/contributing/_category_.json +++ b/docs/src/el/contributing/_category_.json @@ -1,4 +1,4 @@ { - "label": "Contributing", + "label": "Συνεισφορά", "position": 3 -} +} \ No newline at end of file diff --git a/docs/src/el/contributing/guidelines.md b/docs/src/el/contributing/guidelines.md index 1a53c89e..a7498924 100644 --- a/docs/src/el/contributing/guidelines.md +++ b/docs/src/el/contributing/guidelines.md @@ -1,154 +1,59 @@ --- -title: Guidelines +title: Οδηγίες --- -# Contributing to Castopod +# Συνεισφορά στο Castopod -Love Castopod and want to help? Thanks so much, there's something to do for -everybody! +Αγαπάς το Castopod και θέλεις να βοηθήσεις; Ευχαριστούμε πολύ, υπάρχει κάτι για να κάνεις! -Please take a moment to review this document in order to make the contribution -process easy and effective for everyone involved. +Παρακαλούμε αφιέρωσε λίγο χρόνο για να διαβάσεις αυτό το έγγραφο προκειμένου να διευκολύνεις τη διαδικασία της συνεισφοράς για όλους τους εμπλεκόμενους. -Following these guidelines helps to communicate that you respect the time of the -developers managing and developing this open source project. In return, they -should reciprocate that respect in addressing your issue or assessing patches -and features. +Οι παρακάτω οδηγίες βοηθούν στην επικοινωνία και εκφράζουν τον σεβασμό σας για τον χρόνο των προγραμματιστών που διαχειρίζονται και αναπτύσσουν αυτό το ανοικτού κώδικα έργο. Αντίστοιχα, οι προγραμματιστές πρέπει να ανταποκριθούν με τον ίδιο σεβασμό στην επίλυση των θεμάτων που θέτετε και στην αξιολόγηση των διορθώσεων και χαρακτηριστικών που προτείνετε. -::: info Note +::: info Σημείωση -**Any** contribution made on a repository other than -[the original repository](https://code.castopod.org/adaures/castopod) will not -be accepted. +**Οποιαδήποτε** συνεισφορά που γίνεται σε ένα αποθετήριο εκτός +[του αρχικού αποθετηρίου](https://code.castopod.org/adaures/castopod) δεν +θα γίνεται δεκτή. ::: -## Using the issue tracker +## Χρήση του παρακολουθητή θεμάτων -The [issue tracker](https://code.castopod.org/adaures/castopod/-/issues) is the -preferred channel for [bug reports](#bug-reports), -[features requests](#feature-requests) and -[submitting pull requests](#pull-requests). +Ο [παρακολουθητής θεμάτων](https://code.castopod.org/adaures/castopod/-/issues) είναι +η προτιμώμενη μέθοδος για [αναφορές σφαλμάτων](#αναφορά-σφαλμάτων), +[ζητήματα χαρακτηριστικών](#ζητήματα-χαρακτηριστικών) και +[υποβολή αιτημάτων ενσωμάτωσης](#αίτηματα-ενσωμάτωσης). -## ⚠️ Security issues and vulnerabilities +## ⚠️ Θέματα ασφαλείας και ευπάθειες -If you encounter any security issue or vulnerability in the Castopod source, -please contact us directly by email at +Εάν αντιμετωπίσετε οποιοδήποτε θέμα ασφαλείας ή ευπάθεια στον πηγαίο κώδικα του Castopod, +παρακαλούμε επικοινωνήστε απευθείας μαζί μας μέσω email στο [security@castopod.org](mailto:security@castopod.org) -## Bug reports +## Αναφορά σφαλμάτων -A bug is a _demonstrable problem_ that is caused by the code in the repository. -Good bug reports are extremely helpful - thank you! +Ένα σφάλμα είναι ένα _αποδεδειγμένο πρόβλημα_ που προκαλείται από τον κώδικα στο αποθετήριο. Οι καλές αναφορές σφαλμάτων είναι εξαιρετικά χρήσιμες - σε ευχαριστούμε! -Guidelines for bug reports: +Οδηγίες για τις αναφορές σφαλμάτων: -1. **Use the issue search** — check if the issue has already been - reported. +1. **Χρησιμοποιήστε την αναζήτηση θεμάτων** — ελέγξτε εάν έχει ήδη αναφερθεί το θέμα. -2. **Check if the issue has been fixed** — try to reproduce it using the - latest `main` branch in the repository. +2. **Ελέγξτε εάν το θέμα έχει διορθωθεί** — προσπαθήστε να το αναπαράγετε χρησιμοποιώντας το τελευταίο `main` κλαδί στο αποθετήριο. -3. **Isolate the problem** — ideally create a - [reduced test case](https://css-tricks.com/reduced-test-cases/) and a live - example. +3. **Προσδιορίστε το πρόβλημα** — ιδανικά δημιουργήστε ένα + [μειωμένο τεστ κέισ](https://css-tricks.com/reduced-test-cases/) και ένα ζωντανό παράδειγμα. -A good bug report shouldn't leave others needing to chase you up for more -information. Please try to be as detailed as possible in your report. What is -your environment? What steps will reproduce the issue? What browser(s) and OS -experience the problem? What would you expect to be the outcome? All these -details will help people to fix any potential bugs. +Μια καλή αναφορά σφάλματος δεν θα αφήσει άλλους να σας κυνηγούν για περισσότερες πληροφορίες. Προσπαθήστε να δώσετε όσο το δυνατό περισσότερες λεπτομέρειες στην αναφορά σας. Ποιο είναι το περιβάλλον σας; Ποια βήματα θα αναπαραγάγουν το πρόβλημα; Ποιος προγραμματιστικός περιηγητής και λειτουργικό σύστημα αντιμετωπίζουν το πρόβλημα; Ποιο είναι το αναμενόμενο αποτέλεσμα; Όλες αυτές οι λεπτομέρειες θα βοηθήσουν άλλους ανθρώπους να επιδιορθώσουν πιθανά σφάλματα. -> [Issue templates](https://docs.gitlab.com/ee/user/project/description_templates.html#using-the-templates) -> have been created for this project. You may use them to help you follow those -> guidelines. +> [Δημιουργήθηκαν πρότυπα θεμάτων](https://docs.gitlab.com/ee/user/project/description_templates.html#using-the-templates) για αυτό το έργο. Μπορείτε να τα χρησιμοποιήσετε για να σας βοηθήσουν να ακολουθήσετε αυτές τις οδηγίες. -## Feature requests +## Ζητήματα χαρακτηριστικών -Feature requests are welcome. But take a moment to find out whether your idea -fits with the scope and aims of the project. It's up to _you_ to make a strong -case to convince the project's developers of the merits of this feature. Please -provide as much detail and context as possible. +Τα ζητήματα χαρακτηριστικών είναι ευπρόσδεκτα. Όμως, πρώτα διευρεύνησε εάν η ιδέα σου ταιριάζει με το πεδίο και τους στόχους του έργου. Είναι στα χέρια _σου_ να καταθέσεις μια ισχυρή περίπτωση για να πείσεις τους προγραμματιστές του έργου για τα πλεονεκτήματα αυτού του χαρακτηριστικού. Παρακαλούμε παρέχετε όσο το δυνατόν περισσότερες λεπτομέρειες και πλαίσιο. -## Pull requests +## Αιτήματα ενσωμάτωσης -Good pull requests - patches, improvements, new features - are a fantastic help. -They should remain focused in scope and avoid containing unrelated commits. +Τα καλά αιτήματα ενσωμάτωσης - διορθώσεις, βελτιώσεις, νέα χαρακτηριστικά - είναι μια φανταστική βοήθεια. Θα πρέπει να παραμείνουν συγκεντρωμένα στο πεδίο εφαρμογής και να αποφεύγουν να περιλαμβάνουν άσχετες δεσμεύσεις. -**Please ask first** before embarking on any significant pull request (e.g. -implementing features, refactoring code, porting to a different language), -otherwise you risk spending a lot of time working on something that the -project's developers might not want to merge into the project. - -Please adhere to the coding conventions used throughout a project (indentation, -accurate comments, etc.) and any other requirements (such as test coverage). - -Adhering to the following process is the best way to get your work included in -the project: - -1. [Fork](https://docs.gitlab.com/ee/gitlab-basics/fork-project.html) the - project, clone your fork, and configure the remotes: - -```bash -# Clone your fork of the repo into the current directory -git clone https://code.castopod.org//castopod.git - -# Navigate to the newly cloned directory -cd castopod - -# Assign the original repo to a remote called "upstream" -git remote add upstream https://code.castopod.org/adaures/castopod.git -``` - -2. If you cloned a while ago, get the latest changes from upstream: - -```bash -git checkout main -git pull upstream main -``` - -3. Create a new topic branch (off the `main` branch) to contain your feature, - change, or fix: - -```bash -git checkout -b -``` - -4. Commit your changes in logical chunks. Please adhere to these - [git commit message guidelines](https://conventionalcommits.org/) or your - code is unlikely be merged into the main project. Use Git's - [interactive rebase](https://help.github.com/articles/about-git-rebase/) - feature to tidy up your commits before making them public. - -5. Locally merge (or rebase) the upstream dev branch into your topic branch: - -```bash -git pull [--rebase] upstream main -``` - -6. Push your topic branch up to your fork: - -```bash -git push origin -``` - -7. [Open a Pull Request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html#new-merge-request-from-a-fork) - with a clear title and description. - -**IMPORTANT**: By submitting a patch, you agree to allow the project owners to -license your work under the terms of the -[GNU AGPLv3](https://code.castopod.org/adaures/castopod/-/blob/main/LICENSE). - -## Collaborating guidelines - -There are few basic rules to ensure high quality of the project: - -- Before merging, a PR requires at least two approvals from the collaborators - unless it's an architectural change, a large feature, etc. If it is, then at - least 50% of the core team have to agree to merge it, with every team member - having a full veto right. (i.e. every single one can block any PR) -- A PR should remain open for at least two days before merging (does not apply - for trivial contributions like fixing a typo). This way everyone has enough - time to look into it. - -You are always welcome to discuss and propose improvements to this guideline. +**Παρακαλούμε ρωτήστε πρώτα** πριν ξεκινήσετ \ No newline at end of file diff --git a/docs/src/el/contributing/setup-development.md b/docs/src/el/contributing/setup-development.md index 7e42892a..b92cdc75 100644 --- a/docs/src/el/contributing/setup-development.md +++ b/docs/src/el/contributing/setup-development.md @@ -1,45 +1,45 @@ --- -title: Development setup +title: Ρύθμιση ανάπτυξης sidebarDepth: 3 --- -# Setup your development environment +# Ρύθμιση του περιβάλλοντος ανάπτυξής σας -## Introduction +## Εισαγωγή -Castopod is a web app based on the `php` framework +Το Castopod είναι μια διαδικτυακή εφαρμογή βασισμένη στο πλαίσιο `php` [CodeIgniter 4](https://codeigniter.com). -We use [Docker](https://www.docker.com/) quickly setup a dev environment. A -`docker-compose.yml` and `Dockerfile` are included in the project's root folder -to help you kickstart your contribution. +Χρησιμοποιούμε το [Docker](https://www.docker.com/) για γρήγορη δημιουργία περιβάλλοντος ανάπτυξης. Ένα +`docker-compose.yml` και ένα `Dockerfile` περιλαμβάνονται στον κατάλογο ρίζας του έργου +για να σας βοηθήσουν να ξεκινήσετε τη συνεισφορά σας. -> You don't need any prior knowledge of Docker to follow the next steps. -> However, if you wish to use your own environment, feel free to do so! +> Δεν χρειάζεστε καμία προηγούμενη γνώση του Docker για να ακολουθήσετε τα επόμενα βήματα. +> Ωστόσο, αν επιθυμείτε να χρησιμοποιήσετε το δικό σας περιβάλλον, μπορείτε να το κάνετε ελεύθερα! -## Setup instructions +## Οδηγίες εγκατάστασης -### 1. Pre-requisites +### 1. Προαπαιτούμενα -0. Install [docker](https://docs.docker.com/get-docker). +0. Εγκαταστήστε [docker](https://docs.docker.com/get-docker). -1. Clone Castopod project by running: +1. Κλωνοποιήστε το έργο Castopod εκτελώντας: ```bash git clone https://code.castopod.org/adaures/castopod.git ``` -2. Create a `.env` file with the minimum required config to connect the app to - the database and use redis as a cache handler: +2. Δημιουργήστε ένα αρχείο `.env` με τις ελάχιστες απαιτούμενες ρυθμίσεις για να συνδέσετε την εφαρμογή με τη + βάση δεδομένων και να χρησιμοποιήσετε την Redis ως χειριστή κρυφής κρατήσεως: ```ini CI_ENVIRONMENT="development" - # If set to development, you must run `npm run dev` to start the static assets server + # Αν οριστεί ως development, πρέπει να εκτελέσετε `npm run dev` για να ξεκινήσετε τον διακομιστή στατικών πόρων vite.environment="development" - # By default, this is set to true in the app config. - # For development, this must be set to false as it is - # on a local environment + # Από προεπιλογή, αυτό ορίζεται σε true στις ρυθμίσεις της εφαρμογής. + # Για ανάπτυξη, πρέπει να οριστεί σε false καθώς βρίσκεται + # σε τοπικό περιβάλλον app.forceGlobalSecureRequests=false app.baseURL="http://localhost:8080/" @@ -56,368 +56,15 @@ to help you kickstart your contribution. cache.handler="redis" cache.redis.host = "redis" - # You may not want to use redis as your cache handler - # Comment/remove the two lines above and uncomment - # the next line for file caching. + # Μπορεί να μην θέλετε να χρησιμοποιήσετε την Redis ως χειριστή κρυφής κρατήσεως + # Σχολιάστε/αφαιρέστε τις δύο παραπάνω γραμμές και ξεχολιάστε + # την επόμενη γραμμή για κρατήσεις σε αρχείο. #cache.handler="file" ``` - > _NB._ You can tweak your environment by setting more environment variables - > in your custom `.env` file. See the `env` for examples or the - > [CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html) - > for more info. + > _NB._ Μπορείτε να ρυθμίσετε περισσότερες μεταβλητές περιβάλλοντος προσαρμόζοντας το αρχείο `.env`. Δείτε το + > παράδειγμα env ή τον + > [Οδηγό Χρήστη CodeIgniter4](https://codeigniter.com/user_guide/index.html) + > για περισσότερες πληροφορίες. -3. (for docker desktop) Add the repository you've cloned to docker desktop's - `Settings` > `Resources` > `File Sharing` - -### 2. (recommended) Develop inside the app Container with VSCode - -If you're working in VSCode, you can take advantage of the `.devcontainer/` -folder. It defines a development environment (dev container) with preinstalled -requirements and VSCode extensions so you don't have to worry about them. All -required services will be loaded automagically! 🪄 - -1. Install the VSCode extension - [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) -2. `Ctrl/Cmd + Shift + P` > `Open in container` - - > The VSCode window will reload inside the dev container. Expect several - > minutes during first load as it is building all necessary services. - - **Note**: The dev container will start by running Castopod's php server. - During development, you will have to start [Vite](https://vitejs.dev)'s dev - server for compiling the typescript code and styles: - - ```bash - # run Vite dev server - npm run dev - ``` - - If there is any issue with the php server not running, you can restart them - using the following commands: - - ```bash - # run Castopod server - php spark serve - 0.0.0.0 - ``` - -3. You're all set! 🎉 - - You're now **inside the dev container**, you may use the VSCode console - (`Terminal` > `New Terminal`) to run any command: - - ```bash - # PHP is installed - php -v - - # Composer is installed - composer -V - - # npm is installed - npm -v - - # git is installed - git version - ``` - -For more info, see -[VSCode Remote Containers](https://code.visualstudio.com/docs/remote/containers) - -### 3. Start hacking - -You're all set! Start working your magic by updating the project's files! Help -yourself to the -[CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html) for -more insights. - -To see your changes, go to: - -- `http://localhost:8080/` for the Castopod app -- `http://localhost:8888/` for the phpmyadmin interface: - - - username: **castopod** - - password: **castopod** - -### 2-alt. Develop outside the app container - -You do not wish to use the VSCode devcontainer? No problem! - -1. Start docker containers manually: - - Go to project's root folder and run: - - ```bash - # starts all services declared in docker-compose.yml file - # -d option starts the containers in the background - docker-compose up -d - - # See all running processes (you should see 3 processes running) - docker-compose ps - - # Alternatively, you can check all docker processes - docker ps -a - - ``` - - > The `docker-compose up -d` command will boot 4 containers in the - > background: - > - > - `castopod_app`: a php based container with Castopod requirements - > installed - > - `castopod_redis`: a [redis](https://redis.io/) database to handle queries - > and pages caching - > - `castopod_mariadb`: a [mariadb](https://mariadb.org/) server for - > persistent data - > - `castopod_phpmyadmin`: a phpmyadmin server to visualize the mariadb - > database. - -2. Run any command inside the containers by prefixing them with - `docker-compose run --rm app`: - - ```bash - # use PHP - docker-compose run --rm app php -v - - # use Composer - docker-compose run --rm app composer -V - - # use npm - docker-compose run --rm app npm -v - - # use git - docker-compose run --rm app git version - ``` - ---- - -## Going Further - -### Install Castopod's dependencies - -1. Install php dependencies with [Composer](https://getcomposer.org/) - - ```bash - composer install - ``` - - ::: info Note - - The php dependencies aren't included in the repository. Composer will check - the `composer.json` and `composer.lock` files to download the packages with - the right versions. The dependencies will live under the `vendor/` folder. - For more info, check out the - [Composer documentation](https://getcomposer.org/doc/). - - ::: - -2. Install javascript dependencies with [npm](https://www.npmjs.com/) - - ```bash - npm install - ``` - - ::: info Note - - The javascript dependencies aren't included in the repository. Npm will check - the `package.json` and `package.lock` files to download the packages with the - right versions. The dependencies will live under the `node_module` folder. - For more info, check out the [NPM documentation](https://docs.npmjs.com/). - - ::: - -3. Generate static assets: - - ```bash - # build all static assets at once - npm run build:static - - # build specific assets - npm run build:icons - npm run build:svg - ``` - - ::: info Note - - The static assets generated live under the `public/assets` folder, it - includes javascript, styles, images, fonts, icons and svg files. - - ::: - -### Initialize and populate database - -::: tip Tip - -You may skip this section if you go through the install wizard (go to -`/cp-install`). - -::: - -1. Build the database with the migrate command: - - ```bash - # loads the database schema during first migration - php spark migrate -all - ``` - - You may need to undo the migration (rollback): - - ```bash - # rolls back database schema (deletes all tables and their content) - php spark migrate:rollback - ``` - -2. Populate the database with the required data: - - ```bash - # Populates all required data - php spark db:seed AppSeeder - ``` - - You may choose to add data separately: - - ```bash - # Populates all categories - php spark db:seed CategorySeeder - - # Populates all Languages - php spark db:seed LanguageSeeder - - # Populates all podcasts platforms - php spark db:seed PlatformSeeder - - # Populates all Authentication data (roles definition…) - php spark db:seed AuthSeeder - ``` - -3. (optionnal) Populate the database with test data: - - - Populate test data (login: admin / password: AGUehL3P) - - ```bash - php spark db:seed TestSeeder - ``` - - - Populate with fake podcast analytics: - - ```bash - php spark db:seed FakePodcastsAnalyticsSeeder - ``` - - - Populate with fake website analytics: - - ```bash - php spark db:seed FakeWebsiteAnalyticsSeeder - ``` - - TestSeeder will add an active superadmin user with the following credentials: - - - username: **admin** - - password: **AGUehL3P** - -### Useful docker / docker-compose commands - -- Monitor the app container: - -```bash -docker-compose logs --tail 50 --follow --timestamps app -``` - -- Interact with redis server using included redis-cli command: - -```bash -docker exec -it castopod_redis redis-cli -``` - -- Monitor the redis container: - -```bash -docker-compose logs --tail 50 --follow --timestamps redis -``` - -- Monitor the mariadb container: - -```bash -docker-compose logs --tail 50 --follow --timestamps mariadb -``` - -- Monitor the phpmyadmin container: - -```bash -docker-compose logs --tail 50 --follow --timestamps phpmyadmin -``` - -- Restart docker containers: - -```bash -docker-compose restart -``` - -- Destroy all containers, opposite of `up` command: - -```bash -docker-compose down -``` - -- Rebuild app container: - -```bash -docker-compose build app -``` - -Check [docker](https://docs.docker.com/engine/reference/commandline/docker/) and -[docker-compose](https://docs.docker.com/compose/reference/) documentations for -more insights. - -## Known issues - -### Allocation failed - JavaScript heap out of memory - -This happens when running `npm install`. - -👉 By default, docker might not have access to enough RAM. Allocate more memory -and run `npm install` again. - -### (Linux) Files created inside container are attributed to root locally - -You may use Linux user namespaces to fix this on your machine: - -::: info Note - -Replace "username" with your local username - -::: - -1. Go to `/etc/docker/daemon.json` and add: - - ```json - { - "userns-remap": "username" - } - ``` - -2. Configure the subordinate uid/guid: - - ```bash - # in /etc/subuid - username:1000:1 - username:100000:65536 - ``` - - ```bash - # in /etc/subgid - username:1000:1 - username:100000:65536 - ``` - -3. Restart docker: - - ```bash - sudo systemctl restart docker - ``` - -4. That's it! Now, the root user in the container will be mapped to the user on - your local machine, no more permission issues! 🎉 - -You can check -[this great article](https://www.jujens.eu/posts/en/2017/Jul/02/docker-userns-remap/) -to know more about how it works. +3. (για το docker \ No newline at end of file diff --git a/docs/src/el/getting-started/_category_.json b/docs/src/el/getting-started/_category_.json index 877a378f..35a8ebfc 100644 --- a/docs/src/el/getting-started/_category_.json +++ b/docs/src/el/getting-started/_category_.json @@ -1,4 +1,4 @@ { - "label": "Getting Started", + "label": "Ξεκινώντας", "position": 2 -} +} \ No newline at end of file diff --git a/docs/src/el/getting-started/auth.md b/docs/src/el/getting-started/auth.md index e041016b..5416c1e3 100644 --- a/docs/src/el/getting-started/auth.md +++ b/docs/src/el/getting-started/auth.md @@ -1,88 +1,83 @@ ---- -title: Authentication & Authorization -sidebarDepth: 3 ---- +# Αυθεντικοποίηση και Εξουσιοδότηση -# Ταυτοποίηση & εξουσιοδότηση +Το Castopod διαχειρίζεται την αυθεντικοποίηση και την εξουσιοδότηση χρησιμοποιώντας +το `codeigniter/shield` σε συνδυασμό με προσαρμοσμένους κανόνες. Οι ρόλοι και οι +εξουσιοδοτήσεις καθορίζονται σε δύο επίπεδα: -Ο Castopod χειρίζεται τον έλεγχο ταυτότητας και την έγκριση χρησιμοποιώντας -`codeigniter/shield` σε συνδυασμό με προσαρμοσμένους κανόνες. Οι ρόλοι και τα -δικαιώματα καθορίζονται σε δύο επίπεδα: +1. [Σε όλη την πλατφόρμα](#1-σε-όλη-την-πλατφόρμα-ρόλοι-και-εξουσιοδοτήσεις) +2. [Ανά podcast](#2-ανά-podcast-ρόλοι-και-εξουσιοδοτήσεις) -1. [ευρεία παρουσία](#1-instance-wide-roles-and-permissions) -2. [ανά podcast](#2-per-podcast-roles-and-permissions) +## 1. Σε όλη την πλατφόρμα ρόλοι και εξουσιοδοτήσεις -## 1. Διαχείριση ρόλων και δικαιωμάτων - -### Ρόλοι εμφάνισης +### Ρόλοι στην πλατφόρμα -| ρόλος | περιγραφή | δικαιώματα | -| ---------------- | ------------------------------------- | ------------------------------------------------------------------------------------------ | -| Υπερδιαχειριστής | Έχει πλήρη έλεγχο του Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks | -| Διαχειριστής | Διαχείριση περιεχομένου του Castopod. | podcasts.create, podcasts.import, persons.manage, pages.manage | -| Podcaster | Γενικοί χρήστες του Castopod. | admin.access | +| Ρόλος | Περιγραφή | Εξουσιοδοτήσεις | +| ------------ | ----------------------------------- | ------------------------------------------------------------------------------------------ | +| Super admin | Έχει πλήρη έλεγχο στο Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks | +| Διαχειριστής | Διαχειρίζεται το περιεχόμενο του Castopod. | podcasts.create, podcasts.import, persons.manage, pages.manage | +| Podcaster | Κανονικοί χρήστες του Castopod. | admin.access | -### Instance permissions +### Εξουσιοδοτήσεις στην πλατφόρμα -| permission | description | +| Εξουσιοδότηση | Περιγραφή | | ----------------------- | ------------------------------------------------------------------ | -| admin.access | Can access the Castopod admin area. | -| admin.settings | Can access the Castopod settings. | -| users.manage | Can manage Castopod users. | -| persons.manage | Can manage persons. | -| pages.manage | Can manage pages. | -| podcasts.view | Can view all podcasts. | -| podcasts.create | Can create new podcasts. | -| podcasts.import | Can import podcasts. | -| fediverse.manage-blocks | Can block fediverse actors/domains from interacting with Castopod. | +| admin.access | Έχει πρόσβαση στην περιοχή διαχείρισης του Castopod. | +| admin.settings | Έχει πρόσβαση στις ρυθμίσεις του Castopod. | +| users.manage | Μπορεί να διαχειριστεί χρήστες του Castopod. | +| persons.manage | Μπορεί να διαχειριστεί πρόσωπα. | +| pages.manage | Μπορεί να διαχειριστεί σελίδες. | +| podcasts.view | Μπορεί να δει όλα τα podcasts. | +| podcasts.create | Μπορεί να δημιουργήσει νέα podcasts. | +| podcasts.import | Μπορεί να εισαγάγει podcasts. | +| fediverse.manage-blocks | Μπορεί να αποκλείσει χρήστες/τομείς από το Castopod. | -## 2. Per podcast roles and permissions +## 2. Ανά podcast ρόλοι και εξουσιοδοτήσεις -### Per podcast roles +### Ρόλοι ανά podcast -| role | description | permissions | -| ------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Admin | Has complete control of podcast #{id}. | \* | -| Editor | Manages content and publications of podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments | -| Author | Manages content of podcast #{id} but cannot publish them. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips | -| Guest | General contributor of the podcast #{id}. | view, episodes.view | +| Ρόλος | Περιγραφή | Εξουσιοδοτήσεις | +| ------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Admin | Έχει πλήρη έλεγχο στο podcast #{id}. | \* | +| Επεξεργαστής | Διαχειρίζεται το περιεχόμενο και τις δημοσιεύσεις του podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments | +| Συγγραφέας | Διαχειρίζεται το περιεχόμενο του podcast #{id}, αλλά δεν μπορεί να το δημοσιεύσει. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips | +| Καλεσμένος | Γενικός συνεισφέρων του podcast #{id}. | view, episodes.view | -### Per podcast permissions +### Εξουσιοδοτήσεις ανά podcast -| permission | description | -| ---------------------------- | ------------------------------------------------------------------------ | -| view | Can view dashboard and analytics of podcast #{id}. | -| edit | Can edit podcast #{id}. | -| delete | Can delete podcast #{id}. | -| manage-import | Can synchronize imported podcast #{id}. | -| manage-persons | Can manage subscriptions of podcast #{id}. | -| manage-subscriptions | Can manage subscriptions of podcast #{id}. | -| manage-contributors | Can manage contributors of podcast #{id}. | -| manage-platforms | Can set/remove platform links of podcast #{id}. | -| manage-publications | Can publish podcast #{id}. | -| manage-notifications | Can view and mark notifications as read for podcast #{id}. | -| interact-as | Can interact as the podcast #{id} to favourite, share or reply to posts. | -| episodes.view | Can view dashboard and analytics of podcast #{id}. | -| episodes.create | Can create episodes for podcast #{id}. | -| episodes.edit | Can edit podcast #{id}. | -| episodes.delete | Can delete podcast #{id}. | -| episodes.manage-persons | Can manage subscriptions of podcast #{id}. | -| episodes.manage-clips | Can manage video clips or soundbites of podcast #{id}. | -| episodes.manage-publications | Can publish podcast #{id}. | -| episodes.manage-comments | Can create/remove episode comments of podcast #{id}. | +| Εξουσιοδότηση | Περιγραφή | +| ---------------------------- | ----------------------------------------------------------------------------------------- | +| view | Προβολή του πίνακα ελέγχου και της ανάλυσης του podcast #{id}. | +| edit | Μπορεί να επεξεργαστεί το podcast #{id}. | +| delete | Μπορεί να διαγράψει το podcast #{id}. | +| manage-imports | Μπορεί να συγχρονίσει το εισαγόμενο podcast #{id}. | +| manage-persons | Μπορεί να διαχειριστεί τις συνδρομές στο podcast #{id}. | +| manage-subscriptions | Μπορεί να διαχειριστεί τις συνδρομές στο podcast #{id}. | +| manage-contributors | Μπορεί να διαχειριστεί τους συνεισφέροντες του podcast #{id}. | +| manage-platforms | Μπορεί να διαμορφώσει/διαγράψει συνδέσμους πλατφόρμας στο podcast #{id}. | +| manage-publications | Μπορεί να δημοσιεύσει το podcast #{id}. | +| manage-notifications | Μπορεί να δει και να επισημάνει τις κοινωνικές ενημερώσεις ως αναγνωσμένες για το podcast #{id}. | +| interact-as | Μπορεί να αλληλεπιδράσει ως podcast #{id} για προσθήκη, κοινοποίηση ή απάντηση σε μηνύματα. | +| episodes.view | Μπορεί να δει τον πίνακα ελέγχου και τις αναλύσεις του podcast #{id}. | +| episodes.create | Μπορεί να δημιουργήσει επεισόδια για το podcast #{id}. | +| episodes.edit | Μπορεί να επεξεργαστεί το επεισόδιο του podcast #{id}. | +| episodes.delete | Μπορεί να διαγράψει το επεισόδιο του podcast #{id}. | +| episodes.manage-persons | Μπορεί να διαχειριστεί τις συνδρομές στο podcast #{id}. | +| episodes.manage-clips | Μπορεί να διαχειριστεί τα βίντεο clips ή τα ηχητικά αποσπάσματα του podcast #{id}. | +| episodes.manage-publications | Μπορεί να δημοσιεύσει το επεισόδιο του podcast #{id}. | +| episodes.manage-comments | Μπορεί να δημιουργήσει/διαγράψει σχόλια στο επεισόδιο του podcast #{id}. | - + \ No newline at end of file diff --git a/docs/src/el/getting-started/docker.md b/docs/src/el/getting-started/docker.md index 75158bd6..168d46df 100644 --- a/docs/src/el/getting-started/docker.md +++ b/docs/src/el/getting-started/docker.md @@ -1,35 +1,29 @@ --- -title: Official Docker images +title: Επίσημες εικόνες Docker sidebarDepth: 3 --- -# Official Docker images +# Επίσημες εικόνες του Docker -Castopod pushes 3 Docker images to the Docker Hub during its automated build -process: +Το Castopod αποστέλλει 3 εικόνες Docker στο Docker Hub κατά τη διάρκεια της αυτοματοποιημένης διαδικασίας κατασκευής: -- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): an all - in one castopod image using nginx unit -- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): the app bundle - with all of Castopod dependencies -- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an - Nginx configuration for Castopod +- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): μια εικόνα για το Castopod που περιλαμβάνει όλα τα απαιτούμενα στοιχεία, χρησιμοποιώντας το nginx unit +- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): το πακέτο εφαρμογής με όλες τις εξαρτήσεις του Castopod +- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): μια διαμόρφωση του Nginx για το Castopod -Additionally, Castopod requires a MySQL-compatible database. A Redis database -can be added as a cache handler. +Επιπλέον, το Castopod απαιτεί μια βάση δεδομένων που είναι συμβατή με το MySQL. Μια βάση δεδομένων Redis μπορεί επίσης να προστεθεί ως διαχειριστής προσωρινής αποθήκευσης. -## Supported tags +## Υποστηριζόμενες ετικέτες -- `develop` [unstable], latest development branch build -- `beta` [stable], latest beta version build -- `latest` [stable], latest version build -- `1.x.x` [stable], specific version build (since `1.0.0`) +- `develop` [ασταθής], η τελευταία έκδοση του κλαδιού ανάπτυξης +- `beta` [σταθερή], η πιο πρόσφατη έκδοση βήτα +- `1.x.x` [σταθερή], συγκεκριμένη έκδοση (από το `1.0.0` και μετά) -## Example usage +## Παράδειγμα χρήσης -1. Install [docker](https://docs.docker.com/get-docker/) and - [docker-compose](https://docs.docker.com/compose/install/) -2. Create a `docker-compose.yml` file with the following: +1. Εγκαταστήστε το [docker](https://docs.docker.com/get-docker/) και το +[docker-compose](https://docs.docker.com/compose/install/) +2. Δημιουργήστε ένα αρχείο `docker-compose.yml` με τα παρακάτω στοιχεία: ```yml version: "3.7" @@ -87,13 +81,11 @@ can be added as a cache handler. castopod-db: ``` - You have to adapt some variables to your needs (e.g. `CP_BASEURL`, - `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` and `CP_ANALYTICS_SALT`). + Θα πρέπει να προσαρμόσετε ορισμένες μεταβλητές στις ανάγκες σας (π.χ. `CP_BASEURL`, `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` και `CP_ANALYTICS_SALT`). -3. Setup a reverse proxy for TLS (SSL/HTTPS) +3. Ρυθμίστε ένα αντίστροφο πρόξενο για το TLS (SSL/HTTPS) - TLS is mandatory for ActivityPub to work. This job can easily be handled by - a reverse proxy, for example with [Caddy](https://caddyserver.com/): + Το TLS είναι υποχρεωτικό για να λειτουργήσει το ActivityPub. Αυτή η λειτουργία μπορεί να διαχειριστεί εύκολα από ένα αντίστροφο πρόξενο, για παράδειγμα το [Caddy](https://caddyserver.com/): ``` #castopod @@ -102,57 +94,41 @@ can be added as a cache handler. } ``` -4. Run `docker-compose up -d`, wait for it to initialize and head on to - `https://castopod.example.com/cp-install` to finish setting up Castopod! +4. Εκτελέστε `docker-compose up -d`, περιμένετε να ολοκληρωθεί η αρχικοποίηση στο + `https://castopod.example.com/cp-install` για να ολοκληρώσετε τη διαμόρφωση του Castopod! -5. You're all set, start podcasting! 🎙️🚀 +5. Είστε έτοιμοι, αρχίστε να δημιουργείτε περιεχόμενο podcast! 🎙️🚀 -## Environment Variables +## Μεταβλητές περιβάλλοντος -- **castopod/castopod** and **castopod/app** +- **castopod/castopod** και **castopod/app** - | Variable name | Type (`default`) | Default | - | ------------------------------------- | ----------------------- | ---------------- | - | **`CP_BASEURL`** | string | `undefined` | - | **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` | - | **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` | - | **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` | - | **`CP_ANALYTICS_SALT`** | string | `undefined` | - | **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` | - | **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` | - | **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` | - | **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` | - | **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` | - | **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` | - | **`CP_REDIS_HOST`** | ?string | `"localhost"` | - | **`CP_REDIS_PASSWORD`** | ?string | `null` | - | **`CP_REDIS_PORT`** | ?number | `6379` | - | **`CP_REDIS_DATABASE`** | ?number | `0` | - | **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` | - | **`CP_EMAIL_FROM`** | ?string | `undefined` | - | **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` | - | **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` | - | **`CP_EMAIL_SMTP_PORT`** | ?number | `25` | - | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` | - | **`CP_ENABLE_2FA`** | ?boolean | `undefined` | - | **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` | - | **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` | - | **`CP_MEDIA_S3_KEY`** | ?string | `undefined` | - | **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` | - | **`CP_MEDIA_S3_REGION`** | ?string | `undefined` | - | **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` | - | **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` | - | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` | - | **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` | - | **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` | - | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | - | **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` | - | **`CP_TIMEOUT`** | ?number | `900` | - -- **castopod/web-server** - - | Variable name | Type | Default | - | ---------------------- | --------------------- | ------- | - | **`CP_APP_HOSTNAME`** | ?string | `"app"` | - | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | - | **`CP_TIMEOUT`** | ?number | `900` | + | Όνομα μεταβλητής | Τύπος (`default`) | Προεπιλογή | + | ----------------------------- | -------------------------- | ---------------- | + | **`CP_BASEURL`** | string | `undefined` | + | **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` | + | **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` | + | **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` | + | **`CP_ANALYTICS_SALT`** | string | `undefined` | + | **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` | + | **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` | + | **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` | + | **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` | + | **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` | + | **`CP_CACHE_HANDLER`** | [`"file"` ή `"redis"`] | `"file"` | + | **`CP_REDIS_HOST`** | ?string | `"localhost"` | + | **`CP_REDIS_PASSWORD`** | ?string | `null` | + | **`CP_REDIS_PORT`** | ?number | `6379` | + | **`CP_REDIS_DATABASE`** | ?number | `0` | + | **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` | + | **`CP_EMAIL_FROM`** | ?string | `undefined` | + | **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` | + | **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` | + | **`CP_EMAIL_SMTP_PORT`** | ?number | `25` | + | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` ή `"ssl"`] | `"tls"` | + | **`CP_ENABLE_2FA`** | ?boolean | `undefined` | + | **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` | + | **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` | + | **`CP_MEDIA_S3_KEY`** | ?string | `undefined` | + | **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` | + | **`CP_MEDIA_S3_REGION`** | ?string | `undefined \ No newline at end of file diff --git a/docs/src/el/getting-started/install.md b/docs/src/el/getting-started/install.md index af405daf..69ed7bbe 100644 --- a/docs/src/el/getting-started/install.md +++ b/docs/src/el/getting-started/install.md @@ -1,221 +1,58 @@ --- -title: Installation +title: Εγκατάσταση sidebarDepth: 3 --- -# How to install Castopod? +# Πώς να εγκαταστήσετε το Castopod; -Castopod was thought-out to be easy to install. Whether using dedicated or -shared hosting, you can install it on most PHP-MySQL compatible web servers. +Το Castopod έχει σχεδιαστεί να είναι εύκολο στην εγκατάσταση. Αν μιλάμε για +αποκλειστική ή κοινή φιλοξενία, μπορείτε να το εγκαταστήσετε σε περισσότερους +ιστοσέλιδους διακομιστές που υποστηρίζονται από PHP-MySQL. -::: tip Note +::: tip Σημείωση -We've released official Docker images for Castopod! +Έχουμε δημοσιεύσει επίσημες εικόνες Docker για το Castopod! -If you prefer using Docker, you may skip this and go straight to the -[docker documentation](./docker.md) for Castopod. +Εάν προτιμάτε να χρησιμοποιήσετε το Docker, μπορείτε να παραλείψετε αυτό το μέρος και να πάτε απευθείας στην αντίστοιχη [τεκμηρίωση Docker](./docker.md) για το Castopod. ::: -## Requirements +## Προαπαιτήσεις -- PHP v8.1 only -- MySQL version 5.7 or higher or MariaDB version 10.2 or higher -- HTTPS support -- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - incoming requests +- PHP v8.1 +- Έκδοση MySQL 5.7 ή νεότερη ή Έκδοση MariaDB 10.2 ή νεότερη +- Υποστήριξη HTTPS +- Ένα [συγχρονισμένο ρολόι](https://wiki.debian.org/NTP) για την επαλήθευση των εισερχομένων αιτημάτων της ένωσης -### PHP v8.1 only +### PHP v8.1 -PHP version 8.1 is required, with the following extensions installed: +Απαιτείται η έκδοση 8.1 της PHP, με τις ακόλουθες επεκτάσεις εγκατεστημένες: -- [intl](https://php.net/manual/en/intl.requirements.php) -- [libcurl](https://php.net/manual/en/curl.requirements.php) -- [mbstring](https://php.net/manual/en/mbstring.installation.php) -- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**, - **PNG** and **WEBP** libraries. -- [exif](https://www.php.net/manual/en/exif.installation.php) +- [intl](https://www.php.net/manual/fr/intl.requirements.php) +- [libcurl](https://www.php.net/manual/fr/curl.requirements.php) +- [mbstring](https://www.php.net/manual/fr/mbstring.installation.php) +- [gd](https://www.php.net/manual/en/image.installation.php) με τις βιβλιοθήκες **JPEG**, + **PNG** και **WEBP**. +- [exif](https://www.php.net/manual/fr/exif.installation.php) -Additionally, make sure that the following extensions are enabled in your PHP: +Επιπλέον, βεβαιωθείτε ότι οι ακόλουθες επεκτάσεις είναι ενεργοποιημένες στην PHP: -- json (enabled by default - don't turn it off) -- xml (enabled by default - don't turn it off) -- [mysqlnd](https://php.net/manual/en/mysqlnd.install.php) +- json (ενεργοποιημένο από προεπιλογή - μην το απενεργοποιείτε) +- xml (ενεργοποιημένο από προεπιλογή - μην το απενεργοποιείτε) +- [mysqlnd](https://www.php.net/manual/fr/mysqlnd.install.php) -### MySQL compatible database +### Συμβατή βάση δεδομένων MySQL -> We recommend using [MariaDB](https://mariadb.org). +> Συνιστούμε τη χρήση [της MariaDB](https://mariadb.org). -::: warning Warning +::: warning Προσοχή -Castopod only works with supported MySQL 5.7 or higher compatible databases. It -will break with the previous MySQL v5.6 for example as its end of life was on -February 5, 2021. +Το Castopod λειτουργεί μόνο με βάσεις δεδομένων MySQL 5.7 ή νεότερες. Οι έκδοσης 5.6 (η υποστήριξη της οποίας έληξε στις 5 Φεβρουαρίου 2021) ή παλαιότερες του MySQL δεν θα λειτουργήσουν. ::: -You will need the server hostname, database name, username and password to -complete the installation process. If you do not have these, please contact your -server administrator. +Θα χρειαστείτε το όνομα του υποδοχέα του εξυπηρετητή, το όνομα της βάσης δεδομένων, το όνομα χρήστη και τον κωδικό πρόσβασης για να ολοκληρώσετε τη διαδικασία εγκατάστασης. Εάν δεν έχετε αυτές τις πληροφορίες, επικοινωνήστε με τον διαχειριστή. -#### Privileges +#### Δικαιώματα πρόσβασης -User must have at least these privileges on the database for Castopod to work: -`CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`, `UPDATE`, -`REFERENCES`, `CREATE VIEW`. - -### (Optional) FFmpeg v4.1.8 or higher for Video Clips - -[FFmpeg](https://www.ffmpeg.org/) version 4.1.8 or higher is required if you -want to generate Video Clips. The following extensions must be installed: - -- **FreeType 2** library for - [gd](https://www.php.net/manual/en/image.installation.php). - -### (Optional) Other recommendations - -- Redis for better cache performances. -- CDN for static files caching and better performances. -- e-mail gateway for lost passwords. - -## Install instructions - -### Pre-requisites - -0. Get a Web Server with [requirements](#requirements) installed -1. Create a MySQL database for Castopod with a user having access and - modification privileges (for more info, see - [MySQL compatible database](#mysql-compatible-database)). -2. Activate HTTPS on your domain with an _SSL certificate_. -3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto - the web server if you haven’t already. - - ⚠️ Set the web server document root to the `public/` sub-folder within the - `castopod` folder. -4. Add **cron tasks** on your web server for various background processes - (replace the paths accordingly): - - ```bash - * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1 - ``` - - **Note** - If you do not add this cron task, the following Castopod features - will not work: - - - Importing a podcast from an existing RSS feed - - Broadcasting social activities to your followers in the fediverse - - Broadcasting episodes to open hubs using - [WebSub](https://en.wikipedia.org/wiki/WebSub) - - Generating video clips - - [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips) - -### (recommended) Install Wizard - -1. Run the Castopod install script by going to the install wizard page - (`https://your_domain_name.com/cp-install`) in your favorite web browser. -2. Follow the instructions on your screen. -3. Start podcasting! - -::: info Note - -The install script writes a `.env` file in the package root. If you cannot go -through the install wizard, you can create and edit the `.env` file manually -based on the `.env.example` file. - -::: - -### Email/SMTP setup - -Email configuration is required for some features to work properly (eg. -retrieving your forgotten password, sending instructions to premium subscribers, -…) - -You may add your email configuration in your instance's `.env` like so: - -```ini -# […] - -email.fromEmail="your_email_address" -email.SMTPHost="your_smtp_host" -email.SMTPUser="your_smtp_user" -email.SMTPPass="your_smtp_password" -``` - -#### Email config options - -| Variable name | Type | Default | -| ---------------- | -------------------- | ------------ | -| **`fromEmail`** | string | `undefined` | -| **`fromName`** | string | `"Castopod"` | -| **`SMTPHost`** | string | `undefined` | -| **`SMTPUser`** | string | `undefined` | -| **`SMTPPass`** | string | `undefined` | -| **`SMTPPort`** | number | `25` | -| **`SMTPCrypto`** | [`"tls"` or `"ssl"`] | `"tls"` | - -### Media storage - -By default, files are saved to the `public/media` folder using the file system. -If you need to relocate the `media` folder to a different location, you can -specify it in your `.env` file as shown below: - -```ini -# […] - -media.root="media" -media.storage="/mnt/storage" -``` - -In this example, the files will be saved to the /mnt/storage/media folder. Make -sure to also update your web server configuration to reflect this change. - -### S3 - -If you prefer storing your media files on an S3 compatible storage, you may -specify it in your `.env`: - -```ini -# […] - -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" -``` - -#### S3 config options - -| Variable name | Type | Default | -| ----------------------- | ------- | ----------- | -| **`endpoint`** | string | `undefined` | -| **`key`** | string | `undefined` | -| **`secret`** | string | `undefined` | -| **`region`** | string | `undefined` | -| **`bucket`** | string | `castopod` | -| **`protocol`** | number | `undefined` | -| **`pathStyleEndpoint`** | boolean | `false` | -| **`keyPrefix`** | string | `undefined` | - -## Community packages - -If you don't want to bother with installing Castopod manually, you may use one -of the packages created and maintained by the open-source community. - -### Install with YunoHost - -[YunoHost](https://yunohost.org/) is a distribution based on Debian GNU/Linux -made up of free and open-source software packages. It manages the hardships of -self-hosting for you. - -
- - - Install Castopod with YunoHost - - -Github -Repo - -
+Ο χρήστης πρέπει να έχει τουλάχιστον αυτά τα δικαιώμ \ No newline at end of file diff --git a/docs/src/el/getting-started/security.md b/docs/src/el/getting-started/security.md index e205698d..1d64d2e9 100644 --- a/docs/src/el/getting-started/security.md +++ b/docs/src/el/getting-started/security.md @@ -1,26 +1,28 @@ --- -title: Security +title: Ασφάλεια --- -# Security concerns +# Ερωτήσεις Ασφάλειας -Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP -framework that encourages -[good security practices](https://codeigniter.com/user_guide/concepts/security.html). +Το Castopod αναπτύσσεται με χρήση του [CodeIgniter4](https://codeigniter.com/), ένα +framework PHP που προωθεί +[καλές πρακτικές ασφάλειας](https://codeigniter.com/user_guide/concepts/security.html). -To maximize your instance's safety and prevent any malicious attack, we -recommend you update all your Castopod files permissions after installation or -updates (to avoid any prior permission error): +Για να διασφαλίσετε μέγιστη ασφάλεια για την εγκατάσταση σας και να αποφύγετε +κακόβουλες επιθέσεις, σας συνιστούμε να ενημερώσετε τα δικαιώματα των +αρχείων του Castopod μετά την εγκατάσταση και μετά από κάθε αναβάθμιση (και να αποφεύγετε +οποιοδήποτε σφάλμα πρόσβασης στα αρχεία): -- `writable/` folder must be **readable** and **writable**. -- `public/media/` folder must be **readable** and **writable**. -- any other file must be set to **readonly**. +- Ο φάκελος `writable/` θα πρέπει να είναι προσβάσιμος σε καθεστώς **ανάγνωσης** και **εγγραφής**. +- Ο φάκελος `public/media/` θα πρέπει να είναι προσβάσιμος σε καθεστώς **ανάγνωσης** και + **εγγραφής**. +- Όλα τα υπόλοιπα αρχεία θα πρέπει να είναι προσβάσιμα μόνο σε κατάσταση **ανάγνωσης**. -For instance, if you are using Apache or NGINX with Ubuntu you may do the -following: +Για παράδειγμα, αν χρησιμοποιείτε τον Apache ή τον NGINX με το Ubuntu, μπορείτε να εκτελέσετε +τις παρακάτω εντολές: ```bash sudo chown -R root:root /path/to/castopod sudo chown -R www-data:www-data /path/to/castopod/writable sudo chown -R www-data:www-data /path/to/castopod/public/media -``` +``` \ No newline at end of file diff --git a/docs/src/el/getting-started/update.md b/docs/src/el/getting-started/update.md index 98e019fb..572448f3 100644 --- a/docs/src/el/getting-started/update.md +++ b/docs/src/el/getting-started/update.md @@ -1,109 +1,110 @@ --- -title: Update +title: Ενημέρωση sidebarDepth: 3 --- -# How to update Castopod? +# Πώς να εγκαταστήσετε το Castopod; -After installing Castopod, you may want to update your instance to the latest -version in order to enjoy the latest features ✨, bug fixes 🐛 and performance -improvements ⚡. +Μετά την εγκατάσταση του Castopod, μπορείτε να ενημερώσετε την έκδοσή σας στην +πιο πρόσφατη έκδοση για να απολαύσετε τις τελευταίες δυνατότητες ✨, τις +διορθώσεις σφαλμάτων 🐛 και τις βελτιώσεις της απόδοσης ⚡. -## Update instructions +## Οδηγίες ενημέρωσης -0. ⚠️ Before any update, we highly recommend you backup your Castopod files and - database. +0. ⚠️ Πριν από κάθε ενημέρωση, συστήνουμε ιδιαίτερα να δημιουργήσετε αντίγραφο + ασφαλείας των αρχείων Castopod και της βάσης δεδομένων σας. - - cf. - [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) + - βλέπε + [Πρέπει να κάνω αντίγραφο ασφαλείας πριν από την ενημέρωση;](#πρέπει-να-κάνω-αντίγραφο-ασφαλείας-πριν-από-την-ενημέρωση) -1. Go to the - [releases page](https://code.castopod.org/adaures/castopod/-/releases) and - see if your instance is up to date with the latest Castopod version +1. Μεταβείτε στη + [σελίδα κυκλοφορίας](https://code.castopod.org/adaures/castopod/-/releases) και + δείτε αν η έκδοσή σας είναι ενημερωμένη με την πιο πρόσφατη έκδοση του Castopod. - - cf. - [Where can I find my Castopod version?](#where-can-i-find-my-castopod-version) + - βλέπε + [Πού μπορώ να βρω την έκδοση του Castopod μου;](#πού-μπορώ-να-βρω-την-έκδοση-του-castopod-μου;) -2. Download the latest release package named `Castopod Package`, you may choose - between the `zip` or `tar.gz` archives +2. Κατεβάστε το πακέτο της τελευταίας έκδοσης με την ονομασία `Castopod Package`, + μπορείτε να επιλέξετε ανάμεσα στα αρχεία `zip` ή `tar.gz`. - - ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code - - Note that you can also download the latest package from - [castopod.org](https://castopod.org/) + - ⚠️ Βεβαιωθείτε ότι κατεβάζετε το Castopod Package και **ΌΧΙ** τον Πηγαίο Κώδικα. + - Σημειώστε ότι μπορείτε επίσης να κατεβάσετε το πιο πρόσφατο πακέτο από το + [castopod.org](https://castopod.org/). -3. On your server: +3. Στο δικό σας διακομιστή: - - Remove all files except `.env` and `public/media` - - Copy the new files from the downloaded package into your server + - Διαγράψτε όλα τα αρχεία εκτός από το `.env` και το `public/media` + - Αντιγράψτε τα νέα αρχεία από το κατεβασμένο πακέτο στον δικό σας διακομιστή - ::: info Note + ::: info Σημείωση - You may need to reset files permissions as during the install process. - Check [Security Concerns](./security.md). + Μπορεί να χρειαστεί να επανακαθορίσετε τα δικαιώματα αρχείων όπως + κάνατε κατά τη διάρκεια της διαδικασίας εγκατάστασης. + Δείτε [Ανησυχίες Ασφαλείας](./security.md). ::: -4. Update your database schema from your `Castopod Admin` > `About` page or by - running: +4. Ενημερώστε το σχήμα της βάσης δεδομένων σας από τη σελίδα `Castopod Admin` > + `Σχετικά` ή εκτελώντας: ```bash php spark castopod:database-update ``` -5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > - `Housekeeping` -6. ✨ Enjoy your fresh instance, you're all done! +5. Καθαρίστε τη μνήμη cache από τη σελίδα `Castopod Admin` > `Ρυθμίσεις` > + `Γενικές` > `Συντήρηση`. +6. ✨Απολαύστε τη νέα σας έκδοση, ολοκληρώσατε! -::: info Note +::: info Σημείωση -Releases may come with additional update instructions (see -[releases page](https://code.castopod.org/adaures/castopod/-/releases)). +Οι εκδόσεις μπορεί να συνοδεύονται από πρόσθετες οδηγίες ενημέρωσης +(βλ. [Σελίδα Σημειώσεων Έκδοσης](https://code.castopod.org/adaures/castopod/-/releases)). -- cf. - [I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do) +- βλέπε + [Δεν έχω ενημερώσει την έκδοσή μου για καιρό… Τι πρέπει να κάνω;](#δεν-έχω-ενημερώσει-την-έκδοσή-μου-για-καιρό-τι-πρέπει-να-κάνω;) ::: -## Fully Automated updates +## Πλήρως αυτοματοποιημένες ενημερώσεις -> Coming soon... 👀 +> Έρχονται σύντομα... 👀 -## Frequently asked questions (FAQ) +## Συχνές Ερωτήσεις (FAQ) -### Where can I find my Castopod version? +### Πού μπορώ να βρω την έκδοση του Castopod μου; -Go to your Castopod admin panel, the version is displayed on the bottom left -corner. +Μεταβείτε στον πίνακα διαχείρισης του Castopod, η έκδοση εμφανίζεται στην +κάτω αριστερή γωνία. -Alternatively, you can find the version in the `app > Config > Constants.php` -file. +Μπορείτε επίσης να βρείτε την έκδοση στο αρχείο `> Configuration > Constantes.php`. -### I haven't updated my instance in a long time… What should I do? +### Δεν έχω ενημερώσει την έκδοσή μου για καιρό… Τι πρέπει να κάνω; -No problem! Just get the latest release as described above. Only, when going -through the release instructions (4), perform them sequentially, from the oldest -to the newest. +Κανένα πρόβλημα! Απλά αποκτήστε την τελευταία έκδοση, όπως περιγράφεται +παραπάνω. Όταν εκτελείτε τις οδηγίες ενημέρωσης (4), εκκινήστε τις +σειριακά, από την παλαιότερη στην πιο πρόσφατη. -> You may want to backup your instance depending on how long you haven't updated -> Castopod. +> Θα πρέπει να αποθηκεύσετε την έκδοση σας με βάση την ημερομηνία της +> τελευταίας ενημέρωσης του Castopod. -For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to -`v1.0.0-beta.1`: +Για παράδειγμα, αν βρίσκεστε στην `v1.0.0-alpha.42` και θέλετε να +ενημερώσετε στην `v1.0.0-beta.1`: -0. (highly recommended) Make a backup of your files and database. +0. (ισχυρά συνιστάται) Δημιουργήστε αντίγραφο ασφαλείας των αρχείων σας και της + βάσης δεδομένων. -1. Download the latest release, overwrite your files whilst keeping `.env` and - `public/media`. +1. Κατεβάστε την τελευταία έκδοση, αντικαταστήστε τα αρχεία σας κρατώντας τα + `.env` και `public/media`. -2. Go through each release update instructions sequentially (from oldest to - newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`, - `v1.0.0-alpha.45`, …, `v1.0.0-beta.1`. +2. Εκτελέστε τις οδηγίες ενημέρωσης μία-μία (από την παλαιότερη στην + πιο πρόσφατη). -3. ✨ Enjoy your fresh instance, you're all done! +3. ✨ Η νέα σας έκδοση είναι έτοιμη! -### Should I make a backup before updating? +### Πρέπει να κάνω αντίγραφο ασφαλείας πριν από την ενημέρωση; -We advise you do, so you don't lose everything if anything goes wrong! +Σας συνιστούμε να το κάνετε, για να μην χάσετε τίποτα αν κάτι πάει στραβά! -More generally, we advise you make regular backups of your Castopod files and -database to prevent you from losing it all… +Γενικότερα, σας συνιστούμε να κάνετε τακτικά αντίγραφα ασφαλείας των +αρχείων Castopod και της βάσης δεδομένων σας για να αποφύγετε την +απώλεια όλων των δεδομένων σας... \ No newline at end of file diff --git a/docs/src/el/index.md b/docs/src/el/index.md index 799f81d6..ce364721 100644 --- a/docs/src/el/index.md +++ b/docs/src/el/index.md @@ -2,299 +2,150 @@ sidebarDepth: 2 --- -# Καλώς Ήλθατε 👋 +# Καλώς ήλθατε 👋 [![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![stars-badge]][stars] -Το Castopod είναι μια δωρεάν & ανοικτού κώδικα πλατφόρμα φιλοξενίας podcast που -κατασκευάζεται για podcasters που θέλουν να συμμετάσχουν και να αλληλεπιδράσουν -με το κοινό τους. +Το Castopod είναι μια δωρεάν και ανοιχτού κώδικα πλατφόρμα φιλοξενίας που δημιουργήθηκε για ποδκαστερ που θέλουν να ανταλλάσσουν και να αλληλεπιδρούν με το κοινό τους. -Το Castopod είναι εύκολο στην εγκατάσταση και χτίστηκε με το -[CodeIgniter4](https://codeigniter.com/), ένα ισχυρό PHP framework με ένα πολύ -μικρό αποτύπωμα. +Το Castopod είναι εύκολο στην εγκατάσταση και δημιουργήθηκε με το [CodeIgniter4](https://codeigniter.com/), ένα ισχυρό πλαίσιο PHP μικρού μεγέθους. -## Χαρακτηριστικά +## Λειτουργίες -- 🌱  Δωρεάν & open-source (AGPL v3 License) -- 🔐  Εστιάζει στην κυριαρχία των δεδομένων: το περιεχόμενο, το κοινό και - τα αναλυτικά στοιχεία ανήκουν σε εσάς μόνο -- 🪄  Podcasting 2.0 features: GUID, locked, transcripts, funding, - chapters, location, persons, soundbites, … +- 🌱  Ελεύθερο, δωρεάν & ανοιχτού κώδικα (Άδεια AGPL v3) +- 🔐  Κεντρισμένο στην κυριαρχία των δεδομένων: ο περιεχόμενος σας, οι ακροατές + σας και οι στατιστικές σας σάς ανήκουν μόνο σας +- 🪄 Χαρακτηριστικά του Podcasting 2.0: GUID, κλείδωμα, + μεταφράσεις, χρηματοδότηση, κεφάλαια, γεω-τοποθεσία, εισηγητές, + αποσπάσματα ήχου, … - 💬  Ενσωματωμένο κοινωνικό δίκτυο: - - 🚀  Castopod is part of the Fediverse, a decentralized social network - - ❤️  Create posts, share, favourite, and comment on episodes -- 📈  Built-in analytics: - - ⚖️  GDPR / CCPA / LGPD compliant - - 🪙  Standard IABv2 audience measurement - - 🏡  On-premises analytics, no third party involved -- 📢  Built-in marketing tools: - - ✅  SEO ready (open-graph meta-tags, JSON-LD, …) - - 📱  PWA: install as a standalone app - - 🎨  Customizable theme colors - - 🎬  Generate ready-to-share Video clips from episodes - - 🔉  Generate soundbites - - ▶️  Embeddable player, embed your episodes on any website -- 💸  Monetization: - - 🔗  Funding links - - 📲  listen-to-click ads + - 🚀  Το Castopod είναι μέρος του Fediverse, ενός αποκεντρωμένου κοινωνικού δικτύου + - ❤️  Δημιουργήστε δημοσιεύσεις, μοιραστείτε, προσθέστε ως αγαπημένα και σχολιάστε + τα επεισόδια +- 📈  Ενσωματωμένες στατιστικές: + - ⚖️  Συμμορφωμένα με το GDPR/CCPA/LGPD + - 🪙 Μέτρηση κοινής γνώμης IABv2 + - 🏡  Ενσωματωμένες στατιστικές, καμία εμπλοκή τρίτων +- 📢  Ενσωματωμένα εργαλεία μάρκετινγκ: + - ✅  Έτοιμο για το SEO (open-graph μετα-ετικέτες, JSON-LD...) + - 📱  PWA: εγκατέστηση ως αυτόνομη εφαρμογή + - 🎨  Προσαρμογή χρωμάτων θεμάτων + - 🎬  Δημιουργία έτοιμων για κοινοποίηση επεισοδίων βίντεο κλιπ + - 🔉  Δημιουργία επιστροφών ήχου + - ▶️  Ενσωμάτωση των επεισοδίων σας σε οποιαδήποτε ιστοσελίδα +- 💸  Διασφάλιση εσόδων: + - 🔗  Σύνδεσμοι χρηματοδότησης + - 📲  διαφήμιση "ακούστε-κλικ" - 🤝  value4value / WebMonetization - 💎  Premium podcasts -- 📡  Publish your episodes everywhere with RSS: - - 📱  On all indexes and apps: Podcast Index, Apple Podcasts, Spotify, - Google Podcasts, Deezer, Podcast Addict, Podfriend, … - - ⚡  Broadcast your episodes instantly with WebSub -- 📥  Podcast import: move your existing podcast into Castopod -- 📤  Move your podcast out of Castopod -- 🔀  Multi-tenant: host as many podcasts as you want -- 👥  Multi-user: add contributors and set roles -- 🌎  i18n support: translated in English, French, Polish, German, - Brazilian Portuguese & Spanish… with - [more to come](https://translate.castopod.org)! +- 📡 Δημοσιεύστε τα επεισόδιά σας παντού με RSS : + - 📱  Σε όλες τις ευρετηριασμένες και όλες τις εφαρμογές: Podcast Index, + Ποδκαστς Apple, Spotify, Google Podcasts, Deezer, Podcast Addict, Podfriend… + - ⚡ Αμέσως streaming των επεισοδίων σας με WebSub +- 📥  Εισαγωγή Podcast: μετακινήστε το υπάρχον podcast σας σε + Castopod +- 📤  Μεταφέρετε το podcast σας σε έναν άλλο φιλοξενητή +- 🔀  Πολλαπλές ενοικιαζόμενες θέσεις : φιλοξενήστε τόσα πολλά podcasts όσα θέλετε +- 👥  Πολλαπλοί χρήστες: προσθέστε συντελεστές και ορίστε τους + ρόλους τους +- 🌎  διαχείριση της i18n: μεταφρασμένο στα αγγλικά, γαλλικά, πολωνικά, γερμανικά, + πορτογαλικά, βραζιλιάνικα & ισπανικά… και + [σε άλλες πολλές γλώσσες](https://translate.castopod.org) στο μέλλον! -## Κίνητρα +## Γιατί το Castopod ; -The podcasting ecosystem is decentralized by nature: you can create your podcast -as an RSS file, publish it on the web and have it shared everywhere online. +Το περιβάλλον του podcasting είναι αποκεντρωμένο κατά φύση: μπορείτε να δημιουργήσετε +το podcast σας ως ένα αρχείο RSS, να το δημοσιεύσετε στον ιστό και να το κοινοποιήσετε +παντού στο διαδίκτυο. -It is in fact one of the only media to have stayed this way for a long time. +Πρόκειται για ένα από τα λίγα μέσα που παρέμειναν για πολύ καιρό με αυτόν τον τρόπο. -As usages are evolving, more and more people are getting into podcasts: whether -it is creators finding new ways to share their ideas, or listeners in the search -for better content. +Καθώς οι χρήσεις εξελίσσονται, όλο και περισσότεροι άνθρωποι ασχολούνται με τα podcasts: είτε +πρόκειται για δημιουργούς που αναζητούν νέους τρόπους να μοιραστούν τις ιδέες τους, είτε για ακροατές +που αναζητούν ποιοτικό περιεχόμενο. -With podcasting becoming more widely used, some companies are trying to shift it -towards a more controlled and centralized medium. +Με την αυξημένη χρήση των podcasts, ορισμένες εταιρείες προσπαθούν να το προσανατολίσουν προς ένα πιο +ελεγχόμενο και κεντρικό μέσο. -Castopod was created in an effort to provide an open and sustainable alternative -to hosting your podcasts, promoting decentralization to ensure that podcasters -creativity can express itself. +Το Castopod δημιουργήθηκε με σκοπό να παρέχει μια ανοιχτή και βιώσιμη εναλλακτική λύση για την +φιλοξενία των podcasts σας, προωθώντας την αποκεντρωμένη λειτουργία για να εξασφαλιστεί ότι +η δημιουργικότητα των δημιουργών ποδκαστ θα εκφράζεται. -This project is pushed by the open-source community, and specifically by the -[Fediverse](https://fediverse.party/en/fediverse/) and -[Podcasting 2.0](https://podcastindex.org/) movements. +Αυτό το έργο υποστηρίζεται από την κοινότητα του ανοικτού πηγαίου κώδικα και συγκεκριμένα από τη +[Fediverse](https://fediverse.party/en/fediverse/) και την κίνηση +[Podcasting 2.0](https://podcastindex.org/). -## Comparison with other solutions +## Σύγκριση με άλλες λύσεις -We believe that a solution is not necessarily right for everyone, it highly -depends on your needs. So, here are comparisons with other tools to help you to -gauge whether Castopod is the right fit for you. +Πιστεύουμε ότι μια λύση δεν είναι απαραίτητα σωστή για όλους, εξαρτάται πολύ από τις ανάγκες σας. +Οπότε, εδώ είναι οι συγκρίσεις με άλλα εργαλεία για να σας βοηθήσουν να κρίνετε αν το Castopod +σας ταιριάζει ή όχι. -### Castopod vs Wordpress +### Castopod έναντι Wordpress -Castopod is often referred to as "the Wordpress for podcasts" because of the -similarities between the two. In some ways this is true. And actually, Castopod -was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption -from the community and the number of websites running it. +Το Castopod παραπέμπεται συχνά ως "το Wordpress για τα podcasts" λόγω των ομοιοτήτων μεταξύ τους. +Κατά κάποιον τρόπο αυτό είναι αληθές. Και στην πραγματικότητα, το Castopod ήταν έμπνευση από το +οικοσύστημα του Wordpress, βλέποντας την ευκολία ένταξης από την κοινότητα και τον αριθμό των +ιστότοπων που το χρησιμοποιούν το. -Just like Wordpress, Castopod is free & open source, built using PHP with a -MySQL database and is packaged in a way that you can easily install on most web -servers. +Όπως και το Wordpress, το Castopod είναι δωρεάν και ανοιχτού κώδικα, χτίστηκε με χρήση PHP με +ένα MySQL Βάση δεδομένων και είναι συσκευασμένο τρόπο έτσι ώστε να μπορείτε εύκολα να το +εγκαταστήσετε σε σχεδόν όλους τους διακομιστές βάσεως τού Ιστού. -Wordpress is a great way to create your website and extend it with plugins to -get what you want. It is a full fledged CMS that helps you get any type of -website online. +Το Wordpress είναι ένας εξαιρετικός τρόπος να δημιουργήσετε τον δικό σας ιστότοπο και να τον +επεκτείνετε χρησιμοποιώντας πρόσθετα για να πάρετε ό,τι θέλετε. Είναι ένα πλήρως εξελιγμένο σύστημα +διαχείρισης περιεχομένου που σας βοηθά να έχετε οποιοδήποτε είδος ιστότοπου online. -On the other hand, Castopod is meant to address the podcasters needs -specifically, focusing on podcasting, and nothing else. You don't need any -plugin to get you started on your podcasting journey. +Από την άλλη πλευρά, το Castopod έχει ως στόχο να εξυπηρετήσει αποκλειστικά τις ανάγκες των +ποδκάστερ, επικεντρώνοντας στο podcasting και τίποτα άλλο. Δεν χρειάζεστε επέκταση για να ξεκινήσετε +το podcasting σας. -This allows optimizing the processes specific to podcasting: ranging from the -creation of your podcasts and the publication of new episodes all the way to -broadcasting, marketing and analytics. +Αυτό επιτρέπει τη βελτιστοποίηση των διαδικασιών που σχετίζονται με το podcasting: από την +δημιουργία των ποδκάστ μέχρι τη δημοσίευση νέων επεισοδίων και την αναπαραγωγή, +την προώθηση και την ανάλυση. -Finally, depending on your needs, Wordpress and Castopod can even live side by -side as they share the same requirements! +Τέλος, ανάλογα με τις ανάγκες σας, το Wordpress και το Castopod μπορούν ακόμα και να +υπάρχουν δίπλα-δίπλα καθώς έχουν τις ίδιες απαιτήσεις! -### Castopod vs Funkwhale +### Castopod έναντι Funkwhale -Funkwhale is a self-hosted, modern free and open-source music server. Just as -Castopod, Funkwhale is on the fediverse, a decentralized social network allowing -interoperability between the two. +Το Funkwhale είναι ένα αυτο-φιλοξενούμενο, μοντέρνο δωρεάν και ανοιχτού κώδικα σέρβερ μουσικής. +Όπως το Castopod, το Funkwhale βρίσκεται στο Fediverse, ένα αποκεντρωμένο κοινωνικό δίκτυο που +επιτρέπει την αλληλεπίδραση μεταξύ των δύο. -Funkwhale was initially built around music. And later on, as the project -evolved, the ability to host podcasts was introduced. +Το Funkwhale χτίστηκε αρχικά γύρω από τη μουσική. Αργότερα, καθώς εξελίχθηκε το έργο, προστέθηκε +η δυνατότητα φιλοξενίας podcasts. -Unlike Funkwhale, Castopod has been designed and built around podcasting -exclusively. This allows easier implementation for features related to the -podcasting ecosystem, such as the podcasting 2.0 features (transcripts, -chapters, locations, persons, …). +Διαφορετικά από το Funkwhale, το Castopod έχει σχεδιαστεί και χτιστεί αποκλειστικά γύρω από +το podcasting. Αυτό δίνει τη δυνατότητα για ευκολότερη υλοποίηση χαρακτηριστικών που σχετίζονται με +το περιβάλλον του podcasting, όπως τα χαρακτηριστικά του podcasting 2.0 (μεταγραφές, κεφάλαια, τοποθεσίες, +πρόσωπα κ.λπ.). -So, you should probably use Funkwhale if you want to host your music, and use -Castopod if you want to host your podcasts. +Λοιπόν, θα πρέπει πιθανώς να χρησιμοποιείτε το Funkwhale αν θέλετε να φιλοξενήσετε τη μουσική σας +και να χρησιμοποιείτε το Castopod αν θέλετε να φιλοξενήσετε τα podcasts σας. -### Castopod vs other podcast hosts +### Castopod έναντι άλλων παρόχων φιλοξενίας podcasts -There are many solutions for you to host your podcasts, some of which are really -great and [a lot of them](https://podcastindex.org/apps) are jumping into the -Podcasting 2.0 wagon just like Castopod! +Υπάρχουν πολλές λύσεις για τη φιλοξενία των podcasts σας, μερικές από αυτές είναι πραγματικά +αξιόλογες και [πολλές](https://podcastindex.org/apps) με παίρνουνε στο τρένο του Podcasting 2.0 +ακριβώς όπως το Castopod! -Each of these solutions differ from one another, you may compare with the -[list of features](#features). +Κάθε μία από αυτές τις λύσεις διαφέρει μεταξύ τους, μπορείτε να τις συγκρίνετε με τον +[κατάλογο των λειτουργιών](#features). -That being said, there are two main differences with other podcasting solutions: +Αυτό που λέγαμε. υπάρχουν δύο κύριες διαφορές μεταξύ άλλων λύσεων podcasting: -- Castopod can be self-hosted and is the only solution that allows you to keep - full control over what you produce. Also, as it is open-source, you can even - customize it as you wish. +- Το Castopod μπορεί να είναι αυτο-φιλοξενούμενο και είναι η μόνη λύση που σας επιτρέπει + να έχετε πλήρη έλεγχο σε αυτό που παράγετε. Επίσης, καθώς είναι ανοιχτού κώδικα, έχετε την + ελευθερία να το τροποποιήσετε όπως θέλετε. -- Castopod is the only solution that currently integrates both a decentralized - social network with ActivityPub as well as many of the podcasting 2.0 - features, hoping to bridge the gap between the two. +- Το Castopod είναι η μόνη λύση που ενσωματώνει ήδη κοινωνικό δίκτυο που βασίζεται στο ActivityPub + και τα χαρακτηριστικά του "Podcasting 2.0", μειώνοντας την κατάσταση της εγκατάλειψης των δύο. -## Contributing +## Συνεισφορές -Love Castopod and would like to help? Take a look at the following documentation -to get you started. - -### Code of conduct - -Castopod has adopted a Code of Conduct that we expect project participants to -adhere to. Please read the -[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md) -so that you can understand what actions will and will not be tolerated. - -### Contributing guide - -Read our [contributing guide](./contributing/guidelines.md) to learn about our -development process, how to propose bugfixes and improvements, and how to build -and test your changes to Castopod. - -## Contributors ✨ - -Thanks goes to these wonderful people -([emoji key](https://allcontributors.org/docs/en/emoji-key)): - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Yassine Doghri
Yassine Doghri

💻 🐛 📖 👀 🚧 🖋 🎨 ️️️️♿️ 🌍 💬 🧑‍🏫 🚇 🤔 📆 📝
Benjamin Bellamy
Benjamin Bellamy

💻 🐛 👀 🖋 🌍 💬 🚇 🤔 📝 📆 📢
Ola Hneini
Ola Hneini

💻 👀 📖 🚧 💬 🤔
Romain de Laage
Romain de Laage

💻 🚇 📖 🌍 🤔
Lyonel Bernard
Lyonel Bernard

🐛 💬 🔊 🤔
Christopher Lagonick-Weitzel
Christopher Lagonick-Weitzel

🐛 💬 🔊 🤔
Ernesto Acosta
Ernesto Acosta

🐛 🔊 🌍 💬 🤔
Bastien Luneteau
Bastien Luneteau

💻 🐛
Cécile Ricordeau
Cécile Ricordeau

🎨
Patryk Miś
Patryk Miś

🌍
Marcin Lewandowski
Marcin Lewandowski

🐛 🤔
Sebastian Janik
Sebastian Janik

💻
Patryk Karczmarczyk
Patryk Karczmarczyk

💻
denis d
denis d

🐛 🤔
Douglas Kastle
Douglas Kastle

🐛 🤔
cExplorer
cExplorer

🐛 🌍
ImaCrea
ImaCrea

🐛 🤔
Jonas S
Jonas S

💻
LEFEBVRE Yann
LEFEBVRE Yann

🐛
Sebastian Späth
Sebastian Späth

🐛 🤔
rocky III
rocky III

🐛
Hermann Josef Eckl
Hermann Josef Eckl

🐛
Delhaye Cyrille
Delhaye Cyrille

🐛 🤔
João Leandro
João Leandro

🌍 🤔
Angelos Chouvardas
Angelos Chouvardas

🌍
Eivind
Eivind

🌍
Ewen
Ewen

🌍 🤔
forght
forght

🌍
glottis0q
glottis0q

🌍
ButterflyOfFire
ButterflyOfFire

🌍
Lucian I. Last
Lucian I. Last

🌍
LuuzViir
LuuzViir

🌍
CTHTC
CTHTC

🌍
Russian Retro
Russian Retro

🌍
Marek L'ach
Marek L'ach

🌍
GunChleoc
GunChleoc

🌍
GabiSnow
GabiSnow

🌍
bendaha
bendaha

🌍
Samuel Roland
Samuel Roland

🌍
Dimitri Regnier
Dimitri Regnier

🤔
irithys
irithys

🌍
Sergi
Sergi

🌍
ghose (XoseM)
ghose (XoseM)

🌍
Andreas Olsson
Andreas Olsson

🌍
leonfrom
leonfrom

🌍
agentcobra
agentcobra

🌍
Alessandro
Alessandro

🌍
liimee
liimee

🌍
Ahmed Sabouni
Ahmed Sabouni

🌍
KrzysztofDomanczyk
KrzysztofDomanczyk

💻
- - - - - - -This project follows the -[all-contributors](https://github.com/all-contributors/all-contributors) -specification. Contributions of any kind welcome! - -## Contact - -You may reach us for help or ask any question you have on: - -- [Discord](https://castopod.org/discord) (for direct interaction with - developers and the community) -- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for - feature requests & bug reports) - -Alternatively, you can follow us on social media platforms to get news about -Castopod: - -- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance) -- [Twitter](https://twitter.com/castopod) -- [LinkedIn](https://linkedin.com/company/castopod) -- [Facebook](https://www.facebook.com/castopod) - -## Sponsors - -The ongoing development of Castopod is made possible with the support of its -backers. If you'd like to help, please consider -[sponsoring Castopod's development](https://opencollective.com/castopod/contribute). - -
- Ad Aures Logo - NLnet Logo -
- -## License - -[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/) - -Copyright © 2020-present, [Ad Aures](https://adaures.com/). -https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release -https://img.shields.io/github/license/ad-aures/castopod?color=blue -https://img.shields.io/badge/contributions-welcome-brightgreen.svg -https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg -https://img.shields.io/github/stars/ad-aures/castopod?style=social - -[release]: https://code.castopod.org/adaures/castopod/-/releases -[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md -[contributions]: https://code.castopod.org/adaures/castopod/-/issues -[semantic-release]: https://github.com/semantic-release/semantic-release -[discord]: https://castopod.org/discord -[stars]: https://github.com/ad-aures/castopod/stargazers -[crowdin]: https://translate.castopod.org/project/castopod +Αγαπάτε το Castopod και θέλατε να βοηθήσετε; Ρίξτε μια \ No newline at end of file diff --git a/docs/src/es/contributing/_category_.json b/docs/src/es/contributing/_category_.json index e12f1ce5..bb0f489a 100644 --- a/docs/src/es/contributing/_category_.json +++ b/docs/src/es/contributing/_category_.json @@ -1,4 +1,4 @@ { - "label": "Contributing", + "label": "Contribución", "position": 3 -} +} \ No newline at end of file diff --git a/docs/src/es/contributing/guidelines.md b/docs/src/es/contributing/guidelines.md index 1a53c89e..182f2e43 100644 --- a/docs/src/es/contributing/guidelines.md +++ b/docs/src/es/contributing/guidelines.md @@ -1,154 +1,108 @@ --- -title: Guidelines +title: Pautas --- -# Contributing to Castopod +# Contribuir a Castopod -Love Castopod and want to help? Thanks so much, there's something to do for -everybody! +¿Te encanta Castopod y quieres ayudar? ¡Muchas gracias, hay algo para hacer para todos! -Please take a moment to review this document in order to make the contribution -process easy and effective for everyone involved. +Por favor, dedica un momento a revisar este documento para que el proceso de contribución sea fácil y efectivo para todos los involucrados. -Following these guidelines helps to communicate that you respect the time of the -developers managing and developing this open source project. In return, they -should reciprocate that respect in addressing your issue or assessing patches -and features. +Seguir estas pautas ayuda a comunicar que respetas el tiempo de los desarrolladores que gestionan y desarrollan este proyecto de código abierto. A cambio, ellos deberían demostrar ese mismo respeto al abordar tu problema o evaluar parches y mejoras. -::: info Note +::: info Nota -**Any** contribution made on a repository other than -[the original repository](https://code.castopod.org/adaures/castopod) will not -be accepted. +Cualquier contribución realizada en un repositorio que no sea [el repositorio original](https://code.castopod.org/adaures/castopod) no será aceptada. ::: -## Using the issue tracker +## Uso del rastreador de problemas -The [issue tracker](https://code.castopod.org/adaures/castopod/-/issues) is the -preferred channel for [bug reports](#bug-reports), -[features requests](#feature-requests) and -[submitting pull requests](#pull-requests). +El [rastreador de problemas](https://code.castopod.org/adaures/castopod/-/issues) es el canal preferido para [informes de errores](#informes-de-errores), [solicitudes de funciones](#solicitudes-de-funciones) y [envío de solicitudes de extracción](#solicitudes-de-extracción). -## ⚠️ Security issues and vulnerabilities +## ⚠️ Problemas de seguridad y vulnerabilidades -If you encounter any security issue or vulnerability in the Castopod source, -please contact us directly by email at -[security@castopod.org](mailto:security@castopod.org) +Si encuentras algún problema de seguridad o vulnerabilidad en el código fuente de Castopod, contáctanos directamente por correo electrónico a [security@castopod.org](mailto:security@castopod.org). -## Bug reports +## Informes de errores -A bug is a _demonstrable problem_ that is caused by the code in the repository. -Good bug reports are extremely helpful - thank you! +Un error es un _problema demostrable_ que es causado por el código en el repositorio. Los buenos informes de errores son extremadamente útiles, ¡gracias! -Guidelines for bug reports: +Pautas para los informes de errores: -1. **Use the issue search** — check if the issue has already been - reported. +1. **Utiliza la búsqueda de problemas** — comprueba si el problema ya ha sido notificado. -2. **Check if the issue has been fixed** — try to reproduce it using the - latest `main` branch in the repository. +2. **Verifica si el problema ha sido solucionado** — intenta reproducirlo utilizando la última versión de la rama `main` en el repositorio. -3. **Isolate the problem** — ideally create a - [reduced test case](https://css-tricks.com/reduced-test-cases/) and a live - example. +3. **Aisla el problema** — idealmente, crea un [caso de prueba reducido](https://css-tricks.com/reduced-test-cases/) y un ejemplo en vivo. -A good bug report shouldn't leave others needing to chase you up for more -information. Please try to be as detailed as possible in your report. What is -your environment? What steps will reproduce the issue? What browser(s) and OS -experience the problem? What would you expect to be the outcome? All these -details will help people to fix any potential bugs. +Un buen informe de error no debería dejar a los demás buscándote para obtener más información. Por favor, intenta ser lo más detallado posible en tu informe. ¿Cuál es tu entorno? ¿Qué pasos reproducirían el problema? ¿Qué navegador(es) y sistema(s) operativo(s) experimentan el problema? ¿Cuál sería el resultado esperado? Todos estos detalles ayudarán a las personas a solucionar posibles errores. -> [Issue templates](https://docs.gitlab.com/ee/user/project/description_templates.html#using-the-templates) -> have been created for this project. You may use them to help you follow those -> guidelines. +> Se han creado [plantillas de problemas](https://docs.gitlab.com/ee/user/project/description_templates.html#using-the-templates) para este proyecto. Puedes utilizarlas para ayudarte a seguir estas pautas. -## Feature requests +## Solicitudes de funciones -Feature requests are welcome. But take a moment to find out whether your idea -fits with the scope and aims of the project. It's up to _you_ to make a strong -case to convince the project's developers of the merits of this feature. Please -provide as much detail and context as possible. +Las solicitudes de funciones son bienvenidas. Pero tómate un momento para averiguar si tu idea encaja con el alcance y los objetivos del proyecto. Depende de _ti_ presentar un sólido argumento para convencer a los desarrolladores del proyecto de los méritos de esta función. Por favor, proporciona la mayor cantidad de detalles y contexto posible. -## Pull requests +## Solicitudes de extracción -Good pull requests - patches, improvements, new features - are a fantastic help. -They should remain focused in scope and avoid containing unrelated commits. +Las solicitudes de extracción buenas - correcciones de errores, mejoras, nuevas funciones - son de gran ayuda. Deben mantenerse enfocadas en su alcance y evitar contener confirmaciones no relacionadas. -**Please ask first** before embarking on any significant pull request (e.g. -implementing features, refactoring code, porting to a different language), -otherwise you risk spending a lot of time working on something that the -project's developers might not want to merge into the project. +**Por favor, pregunta primero** antes de embarcarte en cualquier solicitud de extracción importante (por ejemplo, implementar funciones, refactorizar código, portar a un lenguaje diferente), de lo contrario corres el riesgo de pasar mucho tiempo trabajando en algo que los desarrolladores del proyecto pueden no querer fusionar en el proyecto. -Please adhere to the coding conventions used throughout a project (indentation, -accurate comments, etc.) and any other requirements (such as test coverage). +Por favor, sigue las convenciones de codificación utilizadas en todo el proyecto (sangría, comentarios precisos, etc.) y cualquier otro requisito (como la cobertura de pruebas). -Adhering to the following process is the best way to get your work included in -the project: +Seguir el siguiente proceso es la mejor manera de que tu trabajo se incluya en el proyecto: -1. [Fork](https://docs.gitlab.com/ee/gitlab-basics/fork-project.html) the - project, clone your fork, and configure the remotes: +1. [Haz una bifurcación](https://docs.gitlab.com/ee/gitlab-basics/fork-project.html) del proyecto, clona tu bifurcación y configura los remotos: ```bash -# Clone your fork of the repo into the current directory -git clone https://code.castopod.org//castopod.git +# Clona tu bifurcación del repositorio en el directorio actual +git clone https://code.castopod.org//castopod.git -# Navigate to the newly cloned directory +# Navega al directorio recién clonado cd castopod -# Assign the original repo to a remote called "upstream" +# Asigna el repositorio original a un remoto llamado "upstream" git remote add upstream https://code.castopod.org/adaures/castopod.git ``` -2. If you cloned a while ago, get the latest changes from upstream: +2. Si clonaste hace un tiempo, obtén los últimos cambios de `upstream`: ```bash git checkout main git pull upstream main ``` -3. Create a new topic branch (off the `main` branch) to contain your feature, - change, or fix: +3. Crea una nueva rama temática (desde la rama `main`) para contener tu función, cambio o corrección: ```bash -git checkout -b +git checkout -b ``` -4. Commit your changes in logical chunks. Please adhere to these - [git commit message guidelines](https://conventionalcommits.org/) or your - code is unlikely be merged into the main project. Use Git's - [interactive rebase](https://help.github.com/articles/about-git-rebase/) - feature to tidy up your commits before making them public. +4. Realiza tus cambios en fragmentos lógicos. Por favor, sigue estas [pautas de mensajes de confirmación de Git](https://conventionalcommits.org/) o es posible que tu código no se fusione en el proyecto principal. Utiliza la función de [rebase interactivo de Git](https://help.github.com/articles/about-git-rebase/) para organizar tus confirmaciones antes de hacerlas públicas. -5. Locally merge (or rebase) the upstream dev branch into your topic branch: +5. Fusiona (o rebasea) localmente la rama de desarrollo de `upstream` en tu rama temática: ```bash git pull [--rebase] upstream main ``` -6. Push your topic branch up to your fork: +6. Sube tu rama temática a tu bifurcación: ```bash -git push origin +git push origin ``` -7. [Open a Pull Request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html#new-merge-request-from-a-fork) - with a clear title and description. +7. [Abre una solicitud de extracción](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html#new-merge-request-from-a-fork) con un título y una descripción claros. -**IMPORTANT**: By submitting a patch, you agree to allow the project owners to -license your work under the terms of the -[GNU AGPLv3](https://code.castopod.org/adaures/castopod/-/blob/main/LICENSE). +**IMPORTANTE**: Al enviar un parche, aceptas permitir a los propietarios del proyecto otorgar una licencia a tu trabajo bajo los términos de la [GNU AGPLv3](https://code.castopod.org/adaures/castopod/-/blob/main/LICENSE). -## Collaborating guidelines +## Pautas de colaboración -There are few basic rules to ensure high quality of the project: +Existen algunas reglas básicas para garantizar la alta calidad del proyecto: -- Before merging, a PR requires at least two approvals from the collaborators - unless it's an architectural change, a large feature, etc. If it is, then at - least 50% of the core team have to agree to merge it, with every team member - having a full veto right. (i.e. every single one can block any PR) -- A PR should remain open for at least two days before merging (does not apply - for trivial contributions like fixing a typo). This way everyone has enough - time to look into it. +- Antes de fusionar, una solicitud de extracción requiere al menos dos aprobaciones de los colaboradores, a menos que sea un cambio arquitectónico, una función grande, etc. Si es así, al menos el 50% del equipo principal debe estar de acuerdo en fusionarlo, y cada miembro del equipo tiene pleno derecho de veto. (es decir, cada uno puede bloquear cualquier solicitud de extracción) +- Una solicitud de extracción debe permanecer abierta al menos dos días antes de fusionarse (no se aplica a contribuciones triviales como corregir un error tipográfico). De esta manera, todos tienen suficiente tiempo para revisarla. -You are always welcome to discuss and propose improvements to this guideline. +Siempre eres bienvenido a discutir y proponer mejoras a estas pautas. \ No newline at end of file diff --git a/docs/src/es/contributing/setup-development.md b/docs/src/es/contributing/setup-development.md index 7e42892a..a5457a4d 100644 --- a/docs/src/es/contributing/setup-development.md +++ b/docs/src/es/contributing/setup-development.md @@ -1,45 +1,40 @@ --- -title: Development setup +title: Configuración de desarrollo sidebarDepth: 3 --- -# Setup your development environment +# Configurar tu entorno de desarrollo -## Introduction +## Introducción -Castopod is a web app based on the `php` framework +Castopod es una aplicación web basada en el framework `php` [CodeIgniter 4](https://codeigniter.com). -We use [Docker](https://www.docker.com/) quickly setup a dev environment. A -`docker-compose.yml` and `Dockerfile` are included in the project's root folder -to help you kickstart your contribution. +Utilizamos [Docker](https://www.docker.com/) para configurar rápidamente un entorno de desarrollo. Se incluyen un archivo `docker-compose.yml` y `Dockerfile` en la carpeta raíz del proyecto para ayudarte a iniciar tu contribución. -> You don't need any prior knowledge of Docker to follow the next steps. -> However, if you wish to use your own environment, feel free to do so! +> No necesitas ningún conocimiento previo de Docker para seguir los siguientes pasos. Sin embargo, si deseas utilizar tu propio entorno, siéntete libre de hacerlo. -## Setup instructions +## Instrucciones de configuración -### 1. Pre-requisites +### 1. Pre-requisitos -0. Install [docker](https://docs.docker.com/get-docker). +0. Instala [docker](https://docs.docker.com/get-docker). -1. Clone Castopod project by running: +1. Clona el proyecto de Castopod ejecutando: ```bash git clone https://code.castopod.org/adaures/castopod.git ``` -2. Create a `.env` file with the minimum required config to connect the app to - the database and use redis as a cache handler: +2. Crea un archivo `.env` con la configuración mínima requerida para conectar la aplicación a la base de datos y usar redis como controlador de caché: ```ini CI_ENVIRONMENT="development" - # If set to development, you must run `npm run dev` to start the static assets server + # Si se establece en development, debes ejecutar `npm run dev` para iniciar el servidor de activos estáticos vite.environment="development" - # By default, this is set to true in the app config. - # For development, this must be set to false as it is - # on a local environment + # Por defecto, esto se establece en true en la configuración de la aplicación. + # Para desarrollo, debe establecerse en false ya que está en un entorno local app.forceGlobalSecureRequests=false app.baseURL="http://localhost:8080/" @@ -56,368 +51,94 @@ to help you kickstart your contribution. cache.handler="redis" cache.redis.host = "redis" - # You may not want to use redis as your cache handler - # Comment/remove the two lines above and uncomment - # the next line for file caching. + # Es posible que no desees utilizar redis como controlador de caché + # Comenta/elimina las dos líneas anteriores y descomenta + # la siguiente línea para el almacenamiento en caché de archivos. #cache.handler="file" ``` - > _NB._ You can tweak your environment by setting more environment variables - > in your custom `.env` file. See the `env` for examples or the - > [CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html) - > for more info. + > _NB._ Puedes ajustar tu entorno estableciendo más variables de entorno en tu archivo `.env` personalizado. Consulta el archivo `env` para ver ejemplos o la [Guía del usuario de CodeIgniter4](https://codeigniter.com/user_guide/index.html) para obtener más información. -3. (for docker desktop) Add the repository you've cloned to docker desktop's - `Settings` > `Resources` > `File Sharing` +3. (para Docker Desktop) Agrega el repositorio que has clonado a "Settings" > "Resources" > "File Sharing" de Docker Desktop. -### 2. (recommended) Develop inside the app Container with VSCode +### 2. (Recomendado) Desarrolla dentro del contenedor de la aplicación con VSCode -If you're working in VSCode, you can take advantage of the `.devcontainer/` -folder. It defines a development environment (dev container) with preinstalled -requirements and VSCode extensions so you don't have to worry about them. All -required services will be loaded automagically! 🪄 +Si estás trabajando en VSCode, puedes aprovechar la carpeta `.devcontainer/`. Define un entorno de desarrollo (contenedor de desarrollo) con los requisitos preinstalados y las extensiones de VSCode para que no tengas que preocuparte por ellos. ¡Todos los servicios necesarios se cargarán automáticamente! 🪄 -1. Install the VSCode extension - [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) +1. Instala la extensión de VSCode [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers). 2. `Ctrl/Cmd + Shift + P` > `Open in container` - > The VSCode window will reload inside the dev container. Expect several - > minutes during first load as it is building all necessary services. + > La ventana de VSCode se recargará dentro del contenedor de desarrollo. Espera varios minutos durante la primera carga, ya que se están compilando todos los servicios necesarios. - **Note**: The dev container will start by running Castopod's php server. - During development, you will have to start [Vite](https://vitejs.dev)'s dev - server for compiling the typescript code and styles: + **Nota**: El contenedor de desarrollo se iniciará ejecutando el servidor php de Castopod. Durante el desarrollo, deberás iniciar el servidor de desarrollo de [Vite](https://vitejs.dev) para compilar el código typescript y los estilos: ```bash - # run Vite dev server + # ejecuta el servidor de desarrollo de Vite npm run dev ``` - If there is any issue with the php server not running, you can restart them - using the following commands: + Si hay algún problema con el servidor php que no se está ejecutando, puedes reiniciarlos utilizando los siguientes comandos: ```bash - # run Castopod server + # ejecuta el servidor de Castopod php spark serve - 0.0.0.0 ``` -3. You're all set! 🎉 +3. ¡Listo! 🎉 - You're now **inside the dev container**, you may use the VSCode console - (`Terminal` > `New Terminal`) to run any command: + Ahora estás **dentro del contenedor de desarrollo**. Puedes usar la consola de VSCode (`Terminal` > `New Terminal`) para ejecutar cualquier comando: ```bash - # PHP is installed + # PHP está instalado php -v - # Composer is installed + # Composer está instalado composer -V - # npm is installed + # npm está instalado npm -v - # git is installed + # git está instalado git version ``` -For more info, see -[VSCode Remote Containers](https://code.visualstudio.com/docs/remote/containers) +Para obtener más información, consulta la documentación de [VSCode Remote Containers](https://code.visualstudio.com/docs/remote/containers). -### 3. Start hacking +### 3. Comienza a programar -You're all set! Start working your magic by updating the project's files! Help -yourself to the -[CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html) for -more insights. +¡Todo está listo! ¡Comienza a trabajar en tus cambios en los archivos del proyecto! Siéntete libre de consultar la [Guía del usuario de CodeIgniter4](https://codeigniter.com/user_guide/index.html) para obtener más información. -To see your changes, go to: +Para ver tus cambios, ve a: -- `http://localhost:8080/` for the Castopod app -- `http://localhost:8888/` for the phpmyadmin interface: +- `http://localhost:8080/` para la aplicación de Castopod +- `http://localhost:8888/` para la interfaz de phpMyAdmin: - - username: **castopod** - - password: **castopod** + - nombre de usuario: **castopod** + - contraseña: **castopod** -### 2-alt. Develop outside the app container +### 2-alternativa. Desarrolla fuera del contenedor de la aplicación -You do not wish to use the VSCode devcontainer? No problem! +¿No deseas utilizar el contenedor de desarrollo de VSCode? ¡No hay problema! -1. Start docker containers manually: +1. Inicia los contenedores de Docker manualmente: - Go to project's root folder and run: + Ve a la carpeta raíz del proyecto y ejecuta: ```bash - # starts all services declared in docker-compose.yml file - # -d option starts the containers in the background + # inicia todos los servicios declarados en el archivo docker-compose.yml + # la opción -d inicia los contenedores en segundo plano docker-compose up -d - # See all running processes (you should see 3 processes running) + # Ver todos los procesos en ejecución (deberías ver 3 procesos en ejecución) docker-compose ps - # Alternatively, you can check all docker processes + # Alternativamente, puedes verificar todos los procesos de Docker docker ps -a - ``` - > The `docker-compose up -d` command will boot 4 containers in the - > background: + > El comando `docker-compose up -d` iniciará 4 contenedores en segundo plano: > - > - `castopod_app`: a php based container with Castopod requirements - > installed - > - `castopod_redis`: a [redis](https://redis.io/) database to handle queries - > and pages caching - > - `castopod_mariadb`: a [mariadb](https://mariadb.org/) server for - > persistent data - > - `castopod_phpmyadmin`: a phpmyadmin server to visualize the mariadb - > database. - -2. Run any command inside the containers by prefixing them with - `docker-compose run --rm app`: - - ```bash - # use PHP - docker-compose run --rm app php -v - - # use Composer - docker-compose run --rm app composer -V - - # use npm - docker-compose run --rm app npm -v - - # use git - docker-compose run --rm app git version - ``` - ---- - -## Going Further - -### Install Castopod's dependencies - -1. Install php dependencies with [Composer](https://getcomposer.org/) - - ```bash - composer install - ``` - - ::: info Note - - The php dependencies aren't included in the repository. Composer will check - the `composer.json` and `composer.lock` files to download the packages with - the right versions. The dependencies will live under the `vendor/` folder. - For more info, check out the - [Composer documentation](https://getcomposer.org/doc/). - - ::: - -2. Install javascript dependencies with [npm](https://www.npmjs.com/) - - ```bash - npm install - ``` - - ::: info Note - - The javascript dependencies aren't included in the repository. Npm will check - the `package.json` and `package.lock` files to download the packages with the - right versions. The dependencies will live under the `node_module` folder. - For more info, check out the [NPM documentation](https://docs.npmjs.com/). - - ::: - -3. Generate static assets: - - ```bash - # build all static assets at once - npm run build:static - - # build specific assets - npm run build:icons - npm run build:svg - ``` - - ::: info Note - - The static assets generated live under the `public/assets` folder, it - includes javascript, styles, images, fonts, icons and svg files. - - ::: - -### Initialize and populate database - -::: tip Tip - -You may skip this section if you go through the install wizard (go to -`/cp-install`). - -::: - -1. Build the database with the migrate command: - - ```bash - # loads the database schema during first migration - php spark migrate -all - ``` - - You may need to undo the migration (rollback): - - ```bash - # rolls back database schema (deletes all tables and their content) - php spark migrate:rollback - ``` - -2. Populate the database with the required data: - - ```bash - # Populates all required data - php spark db:seed AppSeeder - ``` - - You may choose to add data separately: - - ```bash - # Populates all categories - php spark db:seed CategorySeeder - - # Populates all Languages - php spark db:seed LanguageSeeder - - # Populates all podcasts platforms - php spark db:seed PlatformSeeder - - # Populates all Authentication data (roles definition…) - php spark db:seed AuthSeeder - ``` - -3. (optionnal) Populate the database with test data: - - - Populate test data (login: admin / password: AGUehL3P) - - ```bash - php spark db:seed TestSeeder - ``` - - - Populate with fake podcast analytics: - - ```bash - php spark db:seed FakePodcastsAnalyticsSeeder - ``` - - - Populate with fake website analytics: - - ```bash - php spark db:seed FakeWebsiteAnalyticsSeeder - ``` - - TestSeeder will add an active superadmin user with the following credentials: - - - username: **admin** - - password: **AGUehL3P** - -### Useful docker / docker-compose commands - -- Monitor the app container: - -```bash -docker-compose logs --tail 50 --follow --timestamps app -``` - -- Interact with redis server using included redis-cli command: - -```bash -docker exec -it castopod_redis redis-cli -``` - -- Monitor the redis container: - -```bash -docker-compose logs --tail 50 --follow --timestamps redis -``` - -- Monitor the mariadb container: - -```bash -docker-compose logs --tail 50 --follow --timestamps mariadb -``` - -- Monitor the phpmyadmin container: - -```bash -docker-compose logs --tail 50 --follow --timestamps phpmyadmin -``` - -- Restart docker containers: - -```bash -docker-compose restart -``` - -- Destroy all containers, opposite of `up` command: - -```bash -docker-compose down -``` - -- Rebuild app container: - -```bash -docker-compose build app -``` - -Check [docker](https://docs.docker.com/engine/reference/commandline/docker/) and -[docker-compose](https://docs.docker.com/compose/reference/) documentations for -more insights. - -## Known issues - -### Allocation failed - JavaScript heap out of memory - -This happens when running `npm install`. - -👉 By default, docker might not have access to enough RAM. Allocate more memory -and run `npm install` again. - -### (Linux) Files created inside container are attributed to root locally - -You may use Linux user namespaces to fix this on your machine: - -::: info Note - -Replace "username" with your local username - -::: - -1. Go to `/etc/docker/daemon.json` and add: - - ```json - { - "userns-remap": "username" - } - ``` - -2. Configure the subordinate uid/guid: - - ```bash - # in /etc/subuid - username:1000:1 - username:100000:65536 - ``` - - ```bash - # in /etc/subgid - username:1000:1 - username:100000:65536 - ``` - -3. Restart docker: - - ```bash - sudo systemctl restart docker - ``` - -4. That's it! Now, the root user in the container will be mapped to the user on - your local machine, no more permission issues! 🎉 - -You can check -[this great article](https://www.jujens.eu/posts/en/2017/Jul/02/docker-userns-remap/) -to know more about how it works. + > - `castopod_app`: un contenedor basado en php con los requisitos de Castopod instalados + > - `castopod_redis`: una base de datos [redis](https://redis.io/) para manejar consultas + > y almacenamiento en caché de páginas + > - `cast \ No newline at end of file diff --git a/docs/src/es/getting-started/_category_.json b/docs/src/es/getting-started/_category_.json index 877a378f..c2bbc96f 100644 --- a/docs/src/es/getting-started/_category_.json +++ b/docs/src/es/getting-started/_category_.json @@ -1,4 +1,4 @@ { - "label": "Getting Started", + "label": "Comenzando", "position": 2 -} +} \ No newline at end of file diff --git a/docs/src/es/getting-started/auth.md b/docs/src/es/getting-started/auth.md index 9024c6c0..3f66352f 100644 --- a/docs/src/es/getting-started/auth.md +++ b/docs/src/es/getting-started/auth.md @@ -1,88 +1,87 @@ --- -title: Autenticación & Autenticación +title: Autenticación y Autorización sidebarDepth: 3 --- -# Autenticación & Autenticación +# Autenticación y Autorización -Castopod gestiona la autenticación y autorización usando `codeignitor/escudo` -emparejado con reglas personalizadas. Los roles y permisos se definen en dos -niveles: +Castopod maneja la autenticación y autorización mediante +`codeigniter/shield` y reglas personalizadas. Los roles y permisos se definen en dos niveles: -1. [por instancia](#1-instance-wide-roles-and-permissions) -2. [por podcast](#2-per-podcast-roles-and-permissions) +1. [A nivel de instancia](#1-roles-y-permisos-en-toda-la-instancia) +2. [Por podcast](#2-roles-y-permisos-por-podcast) -## 1. Roles por instancia y permisos +## 1. Roles y permisos en toda la instancia -### Roles de instancia +### Roles en la instancia - + -| roles | descripción | permisos | -| ------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------ | -| Super administrador | Tiene control completo sobre Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks | -| Administrador | Gestiona el contenido de Castopod. | podcasts.create, podcasts.import, persons.manage, pages.manage | -| Podcaster | Usuarios generales de Castopod. | admin.access | +| rol | descripción | permisos | +| -------------- | ---------------------------------------- | ----------------------------------------------------------------------------------------- | +| Super admin | Tiene control total sobre Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks | +| Gestor | Maneja el contenido de Castopod. | podcasts.create, podcasts.import, persons.manage, pages.manage | +| Podcaster | Usuarios generales de Castopod. | admin.access | -### Permisos de instancia +### Permisos en la instancia - + -| permisos | descripción | -| ----------------------- | ------------------------------------------------------------------------------ | -| admin.access | Puedes acceder al área de administración de Castopod. | -| admin.settings | Puede acceder a la configuración de Castopod. | -| users.manage | Puede administrar usuarios de Castopod. | -| persons.manage | Puede administrar personas. | -| pages.manage | Puede administrar páginas. | -| podcasts.view | Puede ver todos los podcasts. | -| podcasts.create | Puede crear nuevos podcasts. | -| podcasts.import | Puede importar podcasts. | -| fediverse.manage-blocks | Puedes bloquear la interacción de actores/dominios del fediverso con Castopod. | +| permiso | descripción | +| ---------------------- | --------------------------------------------------------------------- | +| admin.access | Puede acceder al área de administración de Castopod. | +| admin.settings | Puede acceder a la configuración de Castopod. | +| users.manage | Puede gestionar usuarios de Castopod. | +| persons.manage | Puede gestionar personas. | +| pages.manage | Puede gestionar páginas. | +| podcasts.view | Puede ver todos los podcasts. | +| podcasts.create | Puede crear nuevos podcasts. | +| podcasts.import | Puede importar podcasts. | +| fediverse.manage-blocks| Puede bloquear actores/dominios de fediverso de interactuar con Castopod. | -## 2. Permisos y roles por podcast +## 2. Roles y permisos por podcast ### Roles por podcast - + -| roles | descripción | permisos | -| ------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Administrador | Tiene el control completo del podcast #{id}. | \* | -| Editor | Gestiona el contenido y las publicaciones del podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments | -| Autor | Gestiona el contenido del podcast #{id} pero no puede publicarlo. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips | -| Invitado | Colaborador general del podcast #{id}. | view, episodes.view | +| rol | descripción | permisos | +| -----------| ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Admin | Tiene control total sobre el podcast #{id}. | \* | +| Editor | Gestiona el contenido y las publicaciones del podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments | +| Autor | Gestiona el contenido del podcast #{id}, pero no puede publicar.| view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips | +| Invitado | Contribuidor general del podcast #{id}. | view, episodes.view | ### Permisos por podcast - + -| permisos | descripción | -| ---------------------------- | -------------------------------------------------------------------------------------------------- | -| view | Puede ver el panel de control y análisis del podcast #{id}. | -| edit | Puede editar podcast #{id}. | -| delete | Puede borrar el podcast #{id}. | -| manage-import | Puede sincronizar el podcast importado #{id}. | -| manage-persons | Puede administrar las suscripciones del podcast #{id}. | -| manage-subscriptions | Puede administrar las suscripciones del podcast #{id}. | -| manage-contributors | Puede administrar colaboradores del podcast #{id}. | -| manage-platforms | Puede establecer/eliminar enlaces a la plataforma del podcast #{id}. | -| manage-publications | Puede publicar el podcast #{id}. | -| manage-notifications | Puede ver y marcar las notificaciones como leídas para podcast #{id}. | -| interact-as | Puede interactuar como el podcast #{id} para favoritar, compartir o responder a las publicaciones. | -| episodes.view | Puede ver el panel de control y analíticas del episodio #{id}. | -| episodes.create | Puede crear episodios para el podcast #{id}. | -| episodes.edit | Puede editar episodios #{id}. | -| episodes.delete | Puede borrar el podcast #{id}. | -| episodes.manage-persons | Puede administrar las suscripciones del podcast #{id}. | -| episodes.manage-clips | Puedes administrar video clips o sonidos del podcast #{id}. | -| episodes.manage-publications | Puede publicar el podcast #{id}. | -| episodes.manage-comments | Puede crear/eliminar los comentarios de episodio del podcast #{id}. | +| permiso | descripción | +| -------------------------------- | ----------------------------------------------------------------------------------------- | +| ver | Visualizar el panel de control y análisis del podcast #{id}. | +| editar | Puede editar el podcast #{id}. | +| eliminar | Puede eliminar el podcast #{id}. | +| gestionar-importaciones | Puede sincronizar el podcast importado #{id}. | +| gestionar-personas | Permite gestionar las suscripciones al podcast #{id}. | +| gestionar-suscriptores | Permite gestionar las suscripciones al podcast #{id}. | +| gestionar-contribuidores | Permite gestionar los contribuidores del podcast #{id}. | +| gestionar-plataformas | Puede configurar/eliminar los enlaces a plataformas del podcast #{id}. | +| gestionar-publicaciones | Puede publicar el podcast #{id}. | +| gestionar-notificaciones | Puede ver y marcar las notificaciones como leídas para el podcast #{id}. | +| interactuar-como | Puede interactuar como el podcast #{id} para agregar, compartir o responder mensajes. | +| episodes.view | Puede ver el panel de control y análisis del podcast #{id}. | +| crear-episodios | Puede crear episodios para el podcast #{id}. | +| editar-episodios | Puede editar el podcast #{id}. | +| eliminar-episodios | Puede eliminar el podcast #{id}. | +| episodes.manage-persons | Permite gestionar las suscripciones al podcast #{id}. | +| episodes.manage-clips | Permite gestionar clips de video o partes de audio del podcast #{id}. | +| episodes.manage-publications | Puede publicar el podcast #{id}. | +| episodes.manage-comments | Puede crear/eliminar comentarios de episodios del podcast #{id}. | - + \ No newline at end of file diff --git a/docs/src/es/getting-started/docker.md b/docs/src/es/getting-started/docker.md index 84331cab..319f9cb6 100644 --- a/docs/src/es/getting-started/docker.md +++ b/docs/src/es/getting-started/docker.md @@ -5,31 +5,24 @@ sidebarDepth: 3 # Imágenes oficiales de Docker -Castopod lanza 3 imágenes Docker al Docker Hub durante su proceso de -construcción automatizada: +Castopod envía 3 imágenes de Docker al Hub de Docker durante su proceso de construcción automatizada: -- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): una - imagen completa de castopod que utiliza una unidad nginx -- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): el paquete - completo de la aplicación con todas las dependencias de Castopod -- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): una - configuración de Nginx para Castopod +- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): una imagen de Castopod todo en uno que utiliza nginx unit +- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): el paquete de la aplicación con todas las dependencias de Castopod +- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): una configuración de Nginx para Castopod -Adicionalmente, Castopod requiere una base de datos compatible con MySQL. -También se puede añadir una base de datos Redis como gestor de caché. +Además, Castopod requiere una base de datos compatible con MySQL. Se puede añadir una base de datos Redis como administrador de caché. ## Etiquetas admitidas -- `develop` [unstable], última rama construída de desarrollo -- `beta` [stable], última versión beta -- `latest` [stable], última versión -- `1.x.x` [stable], versión específica de compilación (desde `1.0.0`) +- `dev` [inestable], la última versión de la rama de desarrollo +- `beta` [estable], última versión beta +- `1.x.x` [estable], versión específica (desde `1.0.0`) ## Ejemplo de uso -1. Instalar [docker](https://docs.docker.com/get-docker/) y - [docker-compose](https://docs.docker.com/compose/install/) -2. Crear un archivo `docker-compose.yml` con lo siguiente: +1. Instala [docker](https://docs.docker.com/get-docker/) y [docker-compose](https://docs.docker.com/compose/install/) +2. Crea un archivo `docker-compose.yml` con los siguientes elementos: ```yml version: "3.7" @@ -87,14 +80,11 @@ También se puede añadir una base de datos Redis como gestor de caché. castopod-db: ``` - Debes adaptar algunas variables a tus necesidades (ej. `CP_BASEURL`, - `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` y `CP_ANALYTICS_SALT`). + Debes adaptar algunas variables según tus necesidades (por ejemplo, `CP_BASEURL`, `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` y `CP_ANALYTICS_SALT`). -3. Configura un servidor proxy inverso para TLS (SSL/HTTPS). +3. Configura un proxy inverso para TLS (SSL/HTTPS) - TLS es imprescindible para que ActivityPub funcione. Este trabajo puede ser - fácilmente manejado por un proxy inverso, por ejemplo con - [Caddy](https://caddyserver.com/): + TLS es obligatorio para que funcione ActivityPub. Este trabajo se puede manejar fácilmente mediante un proxy inverso, por ejemplo con [Caddy](https://caddyserver.com/): ``` #castopod @@ -103,58 +93,56 @@ También se puede añadir una base de datos Redis como gestor de caché. } ``` -4. Ejecuta `docker-compose -d`, espera a que se inicie y ve a - `https://castopod.mi_dominio.com/cp-install` para terminar de configurar - Castopod! +4. Ejecuta `docker-compose up -d`, espera a que se inicialice en `https://castopod.example.com/cp-install` para completar la configuración de Castopod. -5. Todo listo, empieza a hacer podcasting! 🎙️🚀 🎙️🚀 +5. ¡Estás listo, comienza a hacer podcasts! 🎙️🚀 -## Variables de Entorno +## Variables de entorno -- **castopod/castopod** and **castopod/app** +- **castopod/castopod** y **castopod/app** - | Nombre de la Variable | Tipo (`predeterminado`) | Por defecto | - | ------------------------------------- | ----------------------- | ---------------- | - | **`CP_BASEURL`** | string | `undefined` | - | **`CP_MEDIA_URLBASE`** | ?string | `CP_BASEURL` | - | **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` | - | **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` | - | **`CP_ANALYTICS_SALT`** | string | `undefined` | - | **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` | - | **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` | - | **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` | - | **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` | - | **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` | - | **`CP_CACHE_HANDLER`** | [`"file"` o `"redis"`] | `"file"` | - | **`CP_REDIS_HOST`** | ?string | `"localhost"` | - | **`CP_REDIS_PASSWORD`** | ?string | `null` | - | **`CP_REDIS_PORT`** | ?number | `6379` | - | **`CP_REDIS_DATABASE`** | ?number | `0` | - | **`HOST_EMAIL_SMTP_HOST`** | ?string | `undefined` | - | **`CP_EMAIL_FROM`** | ?string | `undefined` | - | **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` | - | **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` | - | **`CP_EMAIL_SMTP_PORT`** | ?number | `25` | - | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` o `"ssl"`] | `"tls"` | - | **`CP_ENABLE_2FA`** | ?boolean | `undefined` | - | **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` | - | **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` | - | **`CP_MEDIA_S3_KEY`** | ?string | `undefined` | - | **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` | - | **`CP_MEDIA_S3_REGION`** | ?string | `undefined` | - | **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` | - | **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` | - | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` | - | **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` | - | **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` | - | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | - | **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` | - | **`CP_TIMEOUT`** | ?number | `900` | + | Nombre de la variable | Tipo (`default`) | Valor predeterminado | + | ---------------------------------- | ---------------------- | -------------------- | + | **`CP_BASEURL`** | string | `undefined` | + | **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` | + | **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` | + | **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` | + | **`CP_ANALYTICS_SALT`** | string | `undefined` | + | **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` | + | **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` | + | **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` | + | **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` | + | **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` | + | **`CP_CACHE_HANDLER`** | [`"file"` o `"redis"`] | `"file"` | + | **`CP_REDIS_HOST`** | ?string | `"localhost"` | + | **`CP_REDIS_PASSWORD`** | ?string | `null` | + | **`CP_REDIS_PORT`** | ?number | `6379` | + | **`CP_REDIS_DATABASE`** | ?number | `0` | + | **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` | + | **`CP_EMAIL_FROM`** | ?string | `undefined` | + | **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` | + | **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` | + | **`CP_EMAIL_SMTP_PORT`** | ?number | `25` | + | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` | + | **`CP_ENABLE_2FA`** | ?boolean | `undefined` | + | **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` | + | **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` | + | **`CP_MEDIA_S3_KEY`** | ?string | `undefined` | + | **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` | + | **`CP_MEDIA_S3_REGION`** | ?string | `undefined` | + | **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` | + | **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` | + | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` | + | **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` | + | **`CP_DISABLE_HTTPS`** | ?[`0` o `1`] | `undefined` | + | **`CP_MAX_BODY_SIZE`** | ?number (con sufijo) | `512M` | + | **`CP_PHP_MEMORY_LIMIT`** | ?number (con sufijo) | `512M` | + | **`CP_TIMEOUT`** | ?number | `900` | -- **castopod/servidor web** +- **castopod/web-server** - | Nombre de la variable | Tipo | Por defecto | - | ---------------------- | --------------------- | ----------- | - | **`CP_APP_HOSTNAME`** | ?string | `"app"` | - | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | - | **`CP_TIMEOUT`** | ?number | `900` | + | Nombre de la variable | Tipo | Valor predeterminado | + | --------------------- | --------------------- | -------------------- | + | **`CP_APP_HOSTNAME`** | ?string | `"app"` | + | **`CP_MAX_BODY_SIZE`** | ?number (con sufijo) | `512M` | + | **`CP_TIMEOUT`** | ?number | `900` | \ No newline at end of file diff --git a/docs/src/es/getting-started/install.md b/docs/src/es/getting-started/install.md index 7886c735..f46314e0 100644 --- a/docs/src/es/getting-started/install.md +++ b/docs/src/es/getting-started/install.md @@ -5,221 +5,121 @@ sidebarDepth: 3 # ¿Cómo instalar Castopod? -Castopod está pensado para ser fácil de instalar. Ya sea usando un alojamiento -dedicado o compartido, puedes instalarlo en la mayoría de servidores web -compatibles con PHP-MySQL. +Castopod ha sido diseñado para ser fácil de instalar. Ya sea que estés utilizando un alojamiento dedicado o compartido, puedes instalarlo en la mayoría de los servidores web compatibles con PHP-MySQL. ::: tip Nota ¡Hemos publicado imágenes oficiales de Docker para Castopod! -Si prefieres usar Docker, puedes saltarte esto e ir directamente a la -[documentación sobre docker](./docker.md) para Castopod. +Si prefieres utilizar Docker, puedes omitir esta parte e ir directamente a la [documentación de Docker](./docker.md) para Castopod. ::: -## Requisitos +## Requisitos previos -- PHP v8.1 only -- MySQL versión 5.7 o superior o MariaDB versión 10.2 o superior -- Soporte HTTPS -- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - incoming requests +- PHP v8.1 solamente +- Versión de MySQL 5.7 o superior o versión de MariaDB 10.2 o superior +- Soporte de HTTPS +- Un [reloj sincronizado con NTP](https://wiki.debian.org/NTP) para validar las solicitudes entrantes de federación -### PHP v8.1 only +### PHP v8.1 solamente -PHP version 8.1 is required, with the following extensions installed: +Se requiere la versión 8.1 de PHP, con las siguientes extensiones instaladas: -- [intl](https://php.net/manual/en/intl.requirements.php) -- [libcurl](https://php.net/manual/en/curl.requirements.php) -- [mbstring](https://php.net/manual/en/mbstring.installation.php) -- [gd](https://www.php.net/manual/en/image.installation.php) con librerias - **JPEG**, **PNG** y **WEBP**. -- [exif](https://www.php.net/manual/en/exif.installation.php) +- [intl](https://www.php.net/manual/fr/intl.requirements.php) +- [libcurl](https://www.php.net/manual/fr/curl.requirements.php) +- [mbstring](https://www.php.net/manual/fr/mbstring.installation.php) +- [gd](https://www.php.net/manual/en/image.installation.php) con bibliotecas **JPEG**, **PNG** y **WEBP**. +- [exif](https://www.php.net/manual/fr/exif.installation.php) -Además, asegúrate de que las siguientes extensiones están habilitadas en tu PHP: +Además, asegúrate de que las siguientes extensiones estén activadas en tu PHP: -- json (habilitada por defecto - no la desactives) -- xml (habilitada por defecto - no la desactives) -- [mysqlnd](https://php.net/manual/en/mysqlnd.install.php) +- json (activado por defecto - no lo desactives) +- xml (activado por defecto - no lo desactives) +- [mysqlnd](https://www.php.net/manual/fr/mysqlnd.install.php) ### Base de datos compatible con MySQL -> Se recomienda usar [MariaDB](https://mariadb.org). +> Recomendamos utilizar [MariaDB](https://mariadb.org). -::: warning Alerta +::: warning Advertencia -Castopod solo funciona con base de datos compatibles con MySQL 5.7 o superior. -No funcionará por ejemplo con la version previa MySQL v5.6, ya que su vida útil -terminó el 5 de febrero de 2021. +Castopod solo funciona con bases de datos MySQL 5.7 o versiones más recientes. Las versiones 5.6 (cuyo soporte finalizó el 5 de febrero de 2021) o anteriores de MySQL no funcionarán. ::: -Necesitarás la dirección/nombre del servidor (hostname), el nombre de la base de -datos, el usuario y la contraseña para completar el proceso de instalación. Si -no cuentas con esta información, contacta con el administrador de tu servidor. +Necesitarás el nombre de host del servidor, el nombre de la base de datos, el nombre de usuario y la contraseña para completar el proceso de instalación. Si no tienes esta información, contacta a tu administrador. -#### Privilegios +#### Permisos de acceso -El usuario debe tener al menos estos privilegios en la base de datos para que -Castopod funcione: `CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, -`SELECT`, `UPDATE`, `REFERENCES`, `CREATE VIEW`. +El usuario debe tener al menos los siguientes permisos de acceso a la base de datos para que Castopod funcione: `CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`,`INSERT`, `SELECT`, `UPDATE`,`REFERENCES`, `CREATE VIEW`. -### (Opcional) FFmpeg v4.1.8 o superior para poder generar clips de vídeo (recortes de vídeo) +### (Opcional) FFmpeg v4.1.8 o superior para clips de vídeo -Es necesario tener instalado [FFmpeg](https://www.ffmpeg.org/) versión 4.1.8 o -superior si desea generar recorte de vídeos. Se debe instalar las siguientes -extensiones: +Se requiere [FFmpeg](https://www.ffmpeg.org/) versión 4.1.8 o superior si deseas generar Clips de Vídeo. Deben estar instaladas las siguientes extensiones: -- Librería **FreeType 2** para - [gd](https://www.php.net/manual/en/image.installation.php). +- Biblioteca **FreeType 2** para [gd](https://www.php.net/manual/en/image.installation.php). ### (Opcional) Otras recomendaciones -- Redis para mejores rendimientos de caché. -- CDN para almacenamiento en caché de archivos estáticos y mejores rendimientos. -- Pasarela de correo para recuperación de contraseñas olvidadas. +- Redis para un mejor rendimiento del caché. +- CDN para la caché de archivos estáticos y un mejor rendimiento. +- Pasarela de correo electrónico para contraseñas olvidadas. ## Instrucciones de instalación -### Pre-requisitos +### Requisitos previos -0. Consigue un servidor web que cuente con todos los [requisitos](#requirements) - recomendados. -1. Crea una base de datos MySQL para Castopod con un usuario que tenga acceso y - privilegios de modificación (para más información, ver - [base de datos compatible con MySQL](#mysql-compatible-database)). -2. Activa HTTPS en tu dominio web mediante un _certificado SSL_. -3. Descarga y descomprime en tu servidor la última versión de - [Castopod](https://castopod.org/), si aún no lo has hecho. - - ⚠️ Edita la configuración de tu servidor para que el "document root" sea la - subcarpeta `castopod/public/`. -4. Add **cron tasks** on your web server for various background processes - (replace the paths accordingly): +0. Obtén un servidor web con [los requisitos previos](#requisitos) instalados. +1. Crea una base de datos MySQL para Castopod con un usuario que tenga los permisos de acceso y modificación (para obtener más información, consulta [Base de datos compatible con MySQL](#base-de-datos-compatible-con-mysql)). +2. Activa HTTPS en tu dominio con un _certificado SSL_. +3. Descarga y descomprime el último [paquete de Castopod](https://castopod.org/) en el servidor web si aún no lo has hecho. + - ⚠️ Haz que la raíz del documento del servidor web apunte a la subcarpeta `public/` de la carpeta `castopod`. +4. Agrega **tareas programadas** a tu servidor web para varios procesos en segundo plano (reemplaza las rutas según corresponda): ```bash - * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1 + * * * * * /ruta/hacia/php /ruta/hacia/castopod/spark tasks:run >> /dev/null 2>&1 ``` - **Note** - If you do not add this cron task, the following Castopod features - will not work: + **Nota** - Si no añades esta tarea programada, las siguientes características de Castopod no funcionarán: - - Importing a podcast from an existing RSS feed - - Broadcasting social activities to your followers in the fediverse - - Broadcasting episodes to open hubs using - [WebSub](https://en.wikipedia.org/wiki/WebSub) - - Generating video clips - - [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips) + - Importar un podcast desde un feed RSS existente + - Transmitir actividades sociales a tus seguidores en el federado + - Transmitir episodios a hubs abiertos utilizando [WebSub](https://en.wikipedia.org/wiki/WebSub) + - Generación de clips de vídeo - [requiere FFmpeg](#opcional-ffmpeg-v418-o-superior-para-clips-de-v%C3%ADdeo) -### (recomendado) Asistente web de instalación +### (Método recomendado) Asistente de instalación -1. Ejecuta el script de instalación de Castopod visitando en tu navegador web - esta dirección: `https://tu_nombre_de_dominio.com/cp-install` -2. Sigue las instrucciones en pantalla. -3. ¡Empieza a hacer podcasting! +1. Ejecuta el script de instalación de Castopod visitando la página de Asistente de Instalación (`https://tu_nombre_de_dominio.com/cp-install`) en tu navegador web favorito. +2. Sigue las instrucciones que se muestran. +3. ¡Comienza a hacer podcast! -::: info Nota +:::info Nota -El script de instalación crea un archivo `.env` en la raíz de castopod. If you -cannot go through the install wizard, you can create and edit the `.env` file -manually based on the `.env.example` file. +El script de instalación crea un archivo `.env` en la raíz del paquete. Si no puedes usar el asistente de instalación, puedes crear y editar manualmente el archivo `.env` basándote en el archivo `.env.example`. ::: -### Configuración de Correo Electrónico/SMTP +### Configuración de correo electrónico/SMTP -La configuración del correo electrónico es necesaria para que algunas -características funcionen correctamente (por ejemplo, recuperar su contraseña -olvidada, enviando instrucciones a los suscriptores premium, …) +La configuración de correo electrónico es necesaria para que algunas características funcionen correctamente (por ejemplo, recuperar tu contraseña olvidada, enviar instrucciones a suscriptores premium, ...) -Puedes añadir tu configuración de correo electrónico en el archivo `.env` de tu -instancia así: +Puedes agregar la configuración de correo electrónico en el archivo `.env` de tu instancia de la siguiente manera: ```ini # […] -email.fromEmail="your_email_address" -email.SMTPHost="your_smtp_host" -email.SMTPUser="your_smtp_user" -email.SMTPPass="your_smtp_password" +email.fromEmail="tu_dirección_de_correo_electrónico" +email.SMTPHost="tu_host_smtp" +email.SMTPUser="tu_usuario_smtp" +email.SMTPPass="tu_contraseña_smtp" ``` -#### Opciones de configuración de email -| Nombre de la variable | Tipo | Predeterminado | -| --------------------- | -------------------- | -------------- | -| **`fromEmail`** | string | `undefined` | -| **`fromName`** | string | `"Castopod"` | -| **`SMTPHost`** | string | `undefined` | -| **`SMTPUser`** | string | `undefined` | -| **`SMTPPass`** | string | `undefined` | -| **`SMTPPort`** | number | `25` | -| **`SMTPCrypto`** | [`"tls"` or `"ssl"`] | `"tls"` | +#### Opciones de configuración de correo electrónico -### Media storage - -By default, files are saved to the `public/media` folder using the file system. -If you need to relocate the `media` folder to a different location, you can -specify it in your `.env` file as shown below: - -```ini -# […] - -media.root="media" -media.storage="/mnt/storage" -``` - -In this example, the files will be saved to the /mnt/storage/media folder. Make -sure to also update your web server configuration to reflect this change. - -### S3 - -If you prefer storing your media files on an S3 compatible storage, you may -specify it in your `.env`: - -```ini -# […] - -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" -``` - -#### S3 config options - -| Nombre de variable | Type | Default | -| ----------------------- | ------- | ----------- | -| **`endpoint`** | string | `undefined` | -| **`key`** | string | `undefined` | -| **`secret`** | string | `undefined` | -| **`region`** | string | `undefined` | -| **`bucket`** | string | `castopod` | -| **`protocol`** | number | `undefined` | -| **`pathStyleEndpoint`** | boolean | `false` | -| **`keyPrefix`** | string | `undefined` | - -## Paquetes de la comunidad - -If you don't want to bother with installing Castopod manually, you may use one -of the packages created and maintained by the open-source community. - -### Install with YunoHost - -[YunoHost](https://yunohost.org/) is a distribution based on Debian GNU/Linux -made up of free and open-source software packages. It manages the hardships of -self-hosting for you. - -
- - - Instalar Castopod con YunoHost. - - -Github -Repo - -
+| Nombre de variable | Tipo | Valor por defecto | +| ----------------- | -------------------- | ----------------- | +| **`fromEmail`** | string | `undefined` | +| **`fromName`** | string | `"Castopod"` | +| **`SMTPHost \ No newline at end of file diff --git a/docs/src/es/getting-started/security.md b/docs/src/es/getting-started/security.md index 58c13a76..0c58e4e0 100644 --- a/docs/src/es/getting-started/security.md +++ b/docs/src/es/getting-started/security.md @@ -2,26 +2,24 @@ title: Seguridad --- -# Problemas de seguridad +# Preguntas de seguridad -Castopod está construido sobre [CodeIgniter4](https://codeigniter.com/), un -framework de PHP que alienta +Castopod está desarrollado en [CodeIgniter4](https://codeigniter.com/), un +framework PHP que fomenta [buenas prácticas de seguridad](https://codeigniter.com/user_guide/concepts/security.html). -Para maximizar la seguridad de su instancia y prevenir cualquier ataque -malicioso, le recomendamos que actualice todos los permisos de sus archivos -Castopod después de la instalación o actualizaciones (para evitar cualquier -error de permiso previo): +Para garantizar la máxima seguridad de tu instancia y evitar ataques maliciosos, +recomendamos actualizar los permisos de los archivos de Castopod después de la +instalación y cada actualización (y evitar cualquier error de acceso incorrecto a los archivos): -- `writable/` carpeta debe ser **legible** y **escribible**. -- `public/media/` carpeta debe ser **legible** y **escribible**. -- cualquier otro archivo debe establecerse a **solo lectura**. +- La carpeta `writable/` debe ser accesible en **lectura** y **escritura**. +- La carpeta `public/media/` debe ser accesible en **lectura** y **escritura**. +- cualquier otro archivo debe ser accesible solo en **lectura**. -Por ejemplo, si estás usando Apache o NGINX con Ubuntu puedes hacer lo -siguiente: +Por ejemplo, si estás utilizando Apache o NGINX con Ubuntu, puedes ejecutar los siguientes comandos: ```bash -sudo chown -R root:root /path/to/castopod -sudo chown -R www-data:www-data /path/to/castopod/writable -sudo chown -R www-data:www-data /path/to/castopod/public/media -``` +sudo chown -R root:root /ruta/a/castopod +sudo chown -R www-data:www-data /ruta/a/castopod/writable +sudo chown -R www-data:www-data /ruta/a/castopod/public/media +``` \ No newline at end of file diff --git a/docs/src/es/getting-started/update.md b/docs/src/es/getting-started/update.md index db80c992..2c434468 100644 --- a/docs/src/es/getting-started/update.md +++ b/docs/src/es/getting-started/update.md @@ -3,111 +3,96 @@ title: Actualización sidebarDepth: 3 --- -# ¿Cómo actualizar Castopod? +# ¿Cómo instalar Castopod? -Después de instalar Castopod, es posible que quieras actualizar tu instancia a -la última versión para disfrutar de las últimas características ✨, correcciones -de errores 🐛 y mejoras de rendimiento ⚡. +Después de instalar Castopod, puedes actualizar tu instancia a la última versión para disfrutar de las últimas funcionalidades ✨, correcciones de errores 🐛 y mejoras de rendimiento ⚡. -## Instrucciones de Actualización +## Instrucciones de actualización -0. ⚠️ Antes de cualquier actualización, te recomendamos que respaldes tus - archivos de Castopod y base de datos. +0. ⚠️ Antes de actualizar, te recomendamos encarecidamente que hagas una copia de seguridad de tus archivos de Castopod y de la base de datos. - - cf. - [¿Debería hacer una copia de seguridad antes de actualizar?](#should-i-make-a-backup-before-updating) + - ver + [¿Debo hacer una copia de seguridad antes de actualizar?](#¿debo-hacer-una-copia-de-seguridad-antes-de-actualizar) -1. Vaya a la página de - [lanzamientos](https://code.castopod.org/adaures/castopod/-/releases) y vea - si su instancia está actualizada con la última versión de Castopod +1. Ve a la + [página de lanzamientos](https://code.castopod.org/adaures/castopod/-/releases) y + verifica si tu instancia está actualizada con la última versión de Castopod. - - cf. - [¿Dónde puedo encontrar mi versión de Castopod?](#where-can-i-find-my-castopod-version) + - ver + [¿Dónde puedo encontrar la versión de Castopod?](#¿dónde-puedo-encontrar-la-versión-de-castopod) -2. Descargue el último paquete de lanzamiento llamado `Paquete Castopod`, puede - elegir entre los archivos `zip` o `tar.gz` +2. Descarga el paquete de la última versión llamado `Paquete de Castopod`, puedes elegir entre los archivos `zip` o `tar.gz` - - ⚠️ Asegúrate de descargar el paquete de Castopod y **NO** el código fuente - - Ten en cuenta que también puedes descargar el último paquete de + - ⚠️ Asegúrate de descargar el Paquete de Castopod y **NO** el Código Fuente + - Ten en cuenta que también puedes descargar el último paquete desde [castopod.org](https://castopod.org/) 3. En tu servidor: - - Eliminar todos los archivos excepto `.env` y la carpeta `public/media` - - Copie los nuevos archivos del paquete descargado en su servidor + - Elimina todos los archivos excepto `.env` y `public/media` + - Copia los nuevos archivos del paquete descargado en tu servidor - ::: Nota informativa + ::: info Nota - Es posible que necesite restablecer los permisos de los archivos después el - proceso de instalación. Compruebe - [preocupaciones de seguridad](./security.md). + Es posible que debas restablecer los permisos de archivo, como se hizo durante el proceso de instalación. Consulta + [Consideraciones de seguridad](./security.md). ::: -4. Actualice su esquema de base de datos desde su `Administrador de Castopod` > - `Acerca de` página o ejecutando: +4. Actualiza el esquema de tu base de datos desde la página `Castopod Admin` > `About` o ejecutando: ```bash php spark castopod:database-update ``` -5. Limpia tu caché en `Administrador de Castopod` > `Ajustes` > `general` > +5. Borra la caché desde la página `Castopod Admin` > `Settings` > `general` > `Housekeeping` -6. ✨ ¡Disfruta de tu instancia recién instalada, todo listo! +6. ✨¡Disfruta de tu nueva instancia, ¡has terminado! -::: Nota informativa +::: info Nota -Las versiones pueden venir con instrucciones de actualización adicionales (véase -la página de -[lanzamientos](https://code.castopod.org/adaures/castopod/-/releases)). +Es posible que las versiones vengan con instrucciones de actualización adicionales (ver + [página de notas de versión](https://code.castopod.org/adaures/castopod/-/releases)). -- cf. - [No he actualizado mi instancia en mucho tiempo… ¿Qué debo hacer?](#no-he-actualizado-mi-instancia-en-mucho-tiempo-¿qué-debo-hacer) +- ver + [No he actualizado mi instancia en mucho tiempo... ¿Qué debo hacer?](#no-he-actualizado-mi-instancia-en-mucho-tiempo-qué-debo-hacer) ::: -## Actualizaciones totalmente automatizadas +## Actualizaciones completamente automatizadas -> Próximamente... +> Próximamente... 👀 -## Preguntas Frecuentes (FAQ) +## Preguntas frecuentes (FAQ) -### ¿Dónde puedo encontrar mi versión de Castopod? +### ¿Dónde puedo encontrar la versión de Castopod? -Ve al panel de administración de Castopod, la versión se muestra en la esquina -inferior izquierda. +Ve a tu panel de administración de Castopod, la versión se muestra en la parte inferior izquierda. -Alternativamente, puedes encontrar la versión en el archivo -`app > Config > Constants.php`. +También puedes encontrar la versión en la aplicación +`> Configuración > Constantes.php` carpeta. -### No he actualizado mi instancia en mucho tiempo… ¿Qué debo hacer? +### No he actualizado mi instancia en mucho tiempo... ¿Qué debo hacer? -¡No hay problema! No problem! Just get the latest release as described above. -Simplemente cuando vaya a través de las instrucciones de lanzamiento (4), -realice la actualización secuencialmente, desde el más antiguo hasta el más -reciente. +¡No hay problema! Simplemente obtén la última versión según se describe +arriba. Cuando ejecutes las instrucciones de actualización (paso 4), ejecútalas +secuencialmente, desde la más antigua hasta la más reciente. -> Puede que quieras hacer una copia de seguridad de tu instancia dependiendo del -> tiempo que no hayas actualizado Castopod. +> Deberías hacer una copia de seguridad de tu instancia según la fecha de tu última actualización de Castopod. -Por ejemplo, si estás en `v1.0.0-alpha.42` y te gustaría actualizar a -`v1.0.0-beta.1`: +Por ejemplo, si estás en `v1.0.0-alpha.42` y deseas actualizar a + `v1.0.0-beta.1`: -0. (altamente recomendado) Haga una copia de seguridad de sus archivos y base de - datos. +0. (altamente recomendado) Haz una copia de seguridad de tus archivos y base de datos. -1. Descarga la última versión, sobrescribe tus archivos manteniendo `.env` y - `public/media`. +1. Descarga la última versión, sobrescribe tus archivos y conserva `.env` y `public/media`. -2. Repase las instrucciones de actualización de cada versión secuencialmente (de - más antiguo a más reciente) comenzando con `v1.0.0-alpha. 3`, - `v1.0.0-alpha.44`, `v1.0.0-alpha.45`, …, `v1.0.0-beta.1`. +2. Realiza las instrucciones de actualización una por una (desde la más antigua hasta la más reciente). -3. ✨ ¡Disfruta de tu instancia recién instalada, todo listo! +3. ✨¡Tu nueva instancia está lista! ### ¿Debo hacer una copia de seguridad antes de actualizar? -Te aconsejamos que lo hagas, así que no lo pierdas todo si algo sale mal! +Te recomendamos hacerlo, ¡para no perder nada en caso de que algo salga mal! -De manera más general, te aconsejamos hacer copias de seguridad regulares de tus -archivos de Castopod y base de datos para evitar que pierdas todo… +En general, te recomendamos hacer copias de seguridad regularmente de tus archivos de Castopod y de tu base de datos para evitar perderlo todo... \ No newline at end of file diff --git a/docs/src/es/index.md b/docs/src/es/index.md index c92df181..74f487d8 100644 --- a/docs/src/es/index.md +++ b/docs/src/es/index.md @@ -2,306 +2,189 @@ sidebarDepth: 2 --- -# Bienvenid@ 👋 +# Bienvenido 👋 [![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![stars-badge]][stars] -Castopod es una plataforma gratuita y de código abierto para hospedar podcasts -hecha para podcasters que quieren involucrar e interactuar más con su audiencia. +Castopod es una plataforma de alojamiento gratuita y de código abierto diseñada para los podcasters que quieren interactuar con su público. -Castopod es fácil de instalar y se ha desarrollado sobre -[CodeIgniter4](https://codeigniter.com/), un potente y muy ligero framework PHP. +Castopod es fácil de instalar y ha sido diseñado con [CodeIgniter4](https://codeigniter.com/), un framework PHP potente y liviano. ## Características -- 🌱  Gratis & de código abierto (licencia AGPL v3). -- 🔐  Centrado en la soberanía de los datos: tu contenido, tu audiencia, y - tus estadísticas te pertenecen a ti y solo a ti. -- 🪄  Funciones de Podcasting 2.0: GUID (interfaz gráfica de usuario), - protección y bloqueo del podcast, transcripciones, monetización, episodios, - geo-localización, personas, fragmentos de audio, … -- 💬  Integración con redes sociales: - - 🚀  Castopod es parte del Fediverso, una red social descentralizada - - ❤️  Se puede crear mensajes, compartir, agregar a favoritos y comentar - en episodios -- 📈  Análisis estadísticos integrados: - - ⚖️  Compatible con GDPR / CCPA / LGPD - - 🪙  Medida de audiencia con el estándar IABv2 - - 🏡  Estadísticas sin terceras partes involucradas -- 📢  Herramientas de marketing incorporadas: - - ✅  Listo para SEO (meta-etiquetas de open-graph, JSON-LD, …) - - 📱  PWA: instalable como una aplicación independiente - - 🎨  Personalizar los colores del tema - - 🎬  Generar recortes de vídeo listos para compartir, a partir de tus - episodios - - 🔉  Generar fragmentos de audio (Soundbites) para la promoción de tus - episodios. - - ▶️  Reproductor incrustable, con el que insertar tus episodios en - cualquier sitio web! +- 🌱  Libre, gratuito y de código abierto (Licencia AGPL v3) +- 🔐  Enfocado en la soberanía de los datos: tu contenido, tu audiencia y tus estadísticas te pertenecen únicamente a ti +- 🪄 Funcionalidades de Podcasting 2.0: GUID, cerradura, transcripciones, financiación, capítulos, geolocalización, colaboradores, clips de audio, ... +- 💬  Red social integrada: + - 🚀  Castopod forma parte de Fédivers, una red social descentralizada + - ❤️  Crea publicaciones, comparte, favorita y comenta episodios +- 📈  Estadísticas integradas: + - ⚖️  Cumple con GDPR / CCPA / LGPD + - 🪙 Medición de audiencia IABv2 + - 🏡  Estadísticas integradas, sin intermediarios externos +- 📢  Herramientas de marketing integradas: + - ✅  Preparado para SEO (metatags de gráfico abierto, JSON-LD...) + - 📱  PWA: instala como aplicación autónoma + - 🎨  Personaliza los colores del tema + - 🎬  Genera clips de vídeo listos para compartir desde episodios + - 🔉  Genera clips de audio + - ▶️  Integra tus episodios en cualquier sitio web - 💸  Monetización: - 🔗  Enlaces de financiación - - 📲  Anuncios publicitarios del tipo click-para-escuchar - - 🤝  value4value / WebMonetization (criptomonedas para creadores de - contenido). - - 💎  Premium podcasts -- 📡  Publica tus episodios en todas partes con RSS: - - 📱  En todos los directorios y aplicaciones: Podcast Index, Apple - Podcasts, Spotify, Google Podcasts, Deezer, Podcast Addict, Podfriend, … - - ⚡  Emite tus episodios al instante con WebSub. -- 📥  Importación de podcasts: mueve tu podcast existente en otro servicio - a tu servidor Castopod. -- 📤  Mueve tu podcast fuera de Castopod. -- 🔀  Multi-podcast: aloja tantos podcasts como quieras en una misma - instancia/panel de CASTOPOD. -- 👥  Multi-usuario: añade colaboradores y define roles. -- 🌎  Soporte multilingüe i18n: traducido al Inglés, Francés, Polaco, - Alemán, Portugués brasileño, Español, Noruego, … ¡y - [más por venir](https://translate.castopod.org)! + - 📲  Publicidad "escucha-y-clica" + - 🤝  Value4value / WebMonetization + - 💎  Podcasts premium +- 📡 Publica tus episodios en todas partes con RSS: + - 📱  En todos los índices y aplicaciones: Podcast Index, Podcasts de Apple, Spotify, Google Podcasts, Deezer, Podcast Addict, Podfriend, ... + - ⚡ Difunde tus episodios instantáneamente con WebSub +- 📥  Importa tu podcast: mueve tu podcast existente a Castopod +- 📤  Mueve tu podcast a otro proveedor de alojamiento +- 🔀  Multiinquilino: aloja tantos podcasts como quieras +- 👥  Multiusuario: agrega colaboradores y define sus roles +- 🌎  Soporte i18n: traducido al inglés, francés, polaco, alemán, portugués (brasileño) y español... y [más en el futuro](https://translate.castopod.org)! -## Motivación +¿Por qué Castopod? -The podcasting ecosystem is decentralized by nature: you can create your podcast -as an RSS file, publish it on the web and have it shared everywhere online. +El ecosistema de los podcasts es descentralizado por naturaleza: puedes crear tu podcast como un archivo RSS, publicarlo en la web y compartirlo en todos los lugares online. -It is in fact one of the only media to have stayed this way for a long time. +De hecho, es uno de los pocos medios de comunicación que se ha mantenido así durante mucho tiempo. -As usages are evolving, more and more people are getting into podcasts: whether -it is creators finding new ways to share their ideas, or listeners in the search -for better content. +A medida que los usos evolucionan, cada vez más personas se sumergen en los podcasts: ya sea que los creadores busquen nuevas formas de compartir sus ideas, o que los oyentes busquen un contenido de mayor calidad. -With podcasting becoming more widely used, some companies are trying to shift it -towards a more controlled and centralized medium. +Con el aumento del uso de los podcasts, algunas empresas están tratando de convertirlo en un medio más controlado y centralizado. -Castopod was created in an effort to provide an open and sustainable alternative -to hosting your podcasts, promoting decentralization to ensure that podcasters -creativity can express itself. +Castopod fue creado para proporcionar una alternativa abierta y sostenible para alojar tus podcasts, promoviendo la descentralización para asegurar que la creatividad de los podcasters pueda expresarse libremente. -This project is pushed by the open-source community, and specifically by the -[Fediverse](https://fediverse.party/en/fediverse/) and -[Podcasting 2.0](https://podcastindex.org/) movements. +Este proyecto es impulsado por la comunidad de código abierto, y en particular por el movimiento de [Fediverse](https://fediverse.party/en/fediverse/) y [Podcasting 2.0](https://podcastindex.org/). ## Comparación con otras soluciones -We believe that a solution is not necessarily right for everyone, it highly -depends on your needs. So, here are comparisons with other tools to help you to -gauge whether Castopod is the right fit for you. +Creemos que una solución no siempre es adecuada para todos, depende mucho de tus necesidades. Por lo tanto, aquí tienes comparaciones con otras herramientas para ayudarte a determinar si Castopod es la opción adecuada para ti. -### Castopod vs. Wordpress +### Castopod vs Wordpress -Castopod is often referred to as "the Wordpress for podcasts" because of the -similarities between the two. In some ways this is true. And actually, Castopod -was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption -from the community and the number of websites running it. +Castopod a menudo se considera como "el Wordpress de los podcasts" debido a las similitudes entre ambos. En cierto sentido, esto es cierto. Y de hecho, Castopod se inspiró en gran medida en el ecosistema de Wordpress, al ver la facilidad de adopción por parte de la comunidad y la cantidad de sitios web en funcionamiento con él. -Just like Wordpress, Castopod is free & open source, built using PHP with a -MySQL database and is packaged in a way that you can easily install on most web -servers. +Al igual que Wordpress, Castopod es gratuito y de código abierto, construido con PHP y una base de datos MySQL, y se empaqueta de manera que puedas instalarlo fácilmente en la mayoría de los servidores web. -Wordpress is a great way to create your website and extend it with plugins to -get what you want. It is a full fledged CMS that helps you get any type of -website online. +Wordpress es una excelente manera de crear un sitio web y extenderlo con complementos para obtener lo que desees. Es un CMS completo que te ayuda a tener cualquier tipo de sitio web en línea. -On the other hand, Castopod is meant to address the podcasters needs -specifically, focusing on podcasting, and nothing else. You don't need any -plugin to get you started on your podcasting journey. +Por otro lado, Castopod está destinado a satisfacer las necesidades de los podcasters en particular, centrándose en el podcasting y nada más. No necesitas ningún complemento para comenzar tu viaje en el podcasting. -This allows optimizing the processes specific to podcasting: ranging from the -creation of your podcasts and the publication of new episodes all the way to -broadcasting, marketing and analytics. +Esto permite optimizar los procesos específicos del podcasting, desde la creación de tus podcasts y la publicación de nuevos episodios, hasta la difusión, el marketing y las analíticas. -Finally, depending on your needs, Wordpress and Castopod can even live side by -side as they share the same requirements! +Finalmente, dependiendo de tus necesidades, ¡Wordpress y Castopod incluso pueden vivir juntos, ya que tienen los mismos requisitos! -### Castopod vs. Funkwhale +### Castopod vs Funkwhale -Funkwhale is a self-hosted, modern free and open-source music server. Just as -Castopod, Funkwhale is on the fediverse, a decentralized social network allowing -interoperability between the two. +Funkwhale es un servidor de música auto alojado, moderno, gratuito y de código abierto. Al igual que Castopod, Funkwhale se encuentra en el fediverso, una red social descentralizada que permite la interoperabilidad entre ambos. -Funkwhale was initially built around music. And later on, as the project -evolved, the ability to host podcasts was introduced. +Funkwhale se construyó inicialmente en torno a la música. Y más adelante, el proyecto se amplió para permitir el alojamiento de podcasts. -Unlike Funkwhale, Castopod has been designed and built around podcasting -exclusively. This allows easier implementation for features related to the -podcasting ecosystem, such as the podcasting 2.0 features (transcripts, -chapters, locations, persons, …). +A diferencia de Funkwhale, Castopod se ha diseñado y construido exclusivamente en torno a los podcasts. Esto permite una implementación más sencilla de características relacionadas con el ecosistema de podcasting, como las características del podcasting 2.0 (transcripciones, capítulos, ubicaciones, personas, ...). -So, you should probably use Funkwhale if you want to host your music, and use -Castopod if you want to host your podcasts. +Por lo tanto, probablemente deberías usar Funkwhale si quieres alojar tu música, y usar Castopod si quieres alojar tus podcasts. -### Castopod vs. otras plataformas de podcast +### Castopod vs Otros servicios de alojamiento de podcasts -There are many solutions for you to host your podcasts, some of which are really -great and [a lot of them](https://podcastindex.org/apps) are jumping into the -Podcasting 2.0 wagon just like Castopod! +Hay muchas soluciones disponibles para alojar tus podcasts, ¡algunas de las cuales son realmente geniales y [muchas de ellas](https://podcastindex.org/apps) se están subiendo al carro de Podcasting 2.0 como Castopod! -Each of these solutions differ from one another, you may compare with the -[list of features](#features). +Cada una de estas soluciones es diferente entre sí, por lo que puedes compararlas con la [lista de funcionalidades](#características). -That being said, there are two main differences with other podcasting solutions: +Dicho esto, hay dos diferencias principales con otras soluciones de podcasting: -- Castopod puede ser auto-hospedado en tu propio servidor y es la única solución - que te permite mantener un control completo sobre los contenidos que produces. - También, como es de código abierto, puedes incluso personalizarlo como desees - y necesites. +- Castopod se puede auto alojar y es la única solución que te permite tener un control total sobre lo que produces. Además, al ser de código abierto, tienes el poder de modificarlo como desees. -- Castopod es la única solución que hasta el momento integra tanto una red - social descentralizada con ActivityPub así como muchas de las características - del podcasting 2.0, con la esperanza de cerrar la brecha entre ambos. +- Castopod es la única solución que integra un fediverso, una red social descentralizada basada en ActivityPub, y funcionalidades de "Podcasting 2.0", reduciendo así la brecha entre ambas. -## Cómo colaborar +## Contribuir -Love Castopod and would like to help? Take a look at the following documentation -to get you started. +¿Te gusta Castopod y te gustaría ayudar? Echa un vistazo a la siguiente documentación para empezar. ### Código de conducta -Castopod has adopted a Code of Conduct that we expect project participants to -adhere to. Please read the -[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md) -so that you can understand what actions will and will not be tolerated. +Castopod ha adoptado un código de conducta al que esperamos que los participantes del proyecto se adhieran. Por favor, lee el manual de [CODE_OF_CONDUCT](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md) para que puedas entender qué acciones serán y no serán toleradas. -### Guía para colaborar +### Guía de contribución -Read our [contributing guide](./contributing/guidelines.md) to learn about our -development process, how to propose bugfixes and improvements, and how to build -and test your changes to Castopod. +Lee nuestra [guía de contribución](./contributing/guidelines.md) para aprender sobre nuestro proceso de desarrollo, cómo proponer correcciones de errores y mejoras, y cómo compilar y probar tus cambios en Castopod. -## Colaboradores ✨ +## Contribuidores ✨ -Thanks goes to these wonderful people -([emoji key](https://allcontributors.org/docs/en/emoji-key)): +Agradecimientos a estas maravillosas personas ([leyenda de emoticonos](https://allcontributors.org/docs/es/emoji-key)): - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Yassine Doghri
Yassine Doghri

💻 🐛 📖 👀 🚧 🖋 🎨 ️️️️♿️ 🌍 💬 🧑‍🏫 🚇 🤔 📆 📝
Benjamin Bellamy
Benjamin Bellamy

💻 🐛 👀 🖋 🌍 💬 🚇 🤔 📝 📆 📢
Ola Hneini
Ola Hneini

💻 👀 📖 🚧 💬 🤔
Romain de Laage
Romain de Laage

💻 🚇 📖 🌍 🤔
Lyonel Bernard
Lyonel Bernard

🐛 💬 🔊 🤔
Christopher Lagonick-Weitzel
Christopher Lagonick-Weitzel

🐛 💬 🔊 🤔
Ernesto Acosta
Ernesto Acosta

🐛 🔊 🌍 💬 🤔
Bastien Luneteau
Bastien Luneteau

💻 🐛
Cécile Ricordeau
Cécile Ricordeau

🎨
Patryk Miś
Patryk Miś

🌍
Marcin Lewandowski
Marcin Lewandowski

🐛 🤔
Sebastian Janik
Sebastian Janik

💻
Patryk Karczmarczyk
Patryk Karczmarczyk

💻
denis d
denis d

🐛 🤔
Douglas Kastle
Douglas Kastle

🐛 🤔
cExplorer
cExplorer

🐛 🌍
ImaCrea
ImaCrea

🐛 🤔
Jonas S
Jonas S

💻
LEFEBVRE Yann
LEFEBVRE Yann

🐛
Sebastian Späth
Sebastian Späth

🐛 🤔
rocky III
rocky III

🐛
Hermann Josef Eckl
Hermann Josef Eckl

🐛
Delhaye Cyrille
Delhaye Cyrille

🐛 🤔
João Leandro
João Leandro

🌍 🤔
Angelos Chouvardas
Angelos Chouvardas

🌍
Eivind
Eivind

🌍
Ewen
Ewen

🌍 🤔
forght
forght

🌍
glottis0q
glottis0q

🌍
ButterflyOfFire
ButterflyOfFire

🌍
Lucian I. Last
Lucian I. Last

🌍
LuuzViir
LuuzViir

🌍
CTHTC
CTHTC

🌍
Russian Retro
Russian Retro

🌍
Marek L'ach
Marek L'ach

🌍
GunChleoc
GunChleoc

🌍
GabiSnow
GabiSnow

🌍
bendaha
bendaha

🌍
Samuel Roland
Samuel Roland

🌍
Dimitri Regnier
Dimitri Regnier

🤔
irithys
irithys

🌍
Sergi
Sergi

🌍
ghose (XoseM)
ghose (XoseM)

🌍
Andreas Olsson
Andreas Olsson

🌍
leonfrom
leonfrom

🌍
agentcobra
agentcobra

🌍
Alessandro
Alessandro

🌍
liimee
liimee

🌍
Ahmed Sabouni
Ahmed Sabouni

🌍
KrzysztofDomanczyk
KrzysztofDomanczyk

💻
+ + Yassine Doghri
+ Yassine Doghri

+ 💻 + 🐛 + 📓 + 🤔 + 🌍 + 🗣 + Benjamin Bellamy
+ Benjamin Bellamy

+ 🤔 + 🎨 + 🌍 + Ola Hneini
+ Ola Hneini

+ 🤔 + 🌍 + Romain de Laage
+ Romain de Laage

+ 🤔 + 🌍 + Lyonel Bernard
+ Lyonel Bernard

+ 🤔 + Christopher Lagonick-Weitzel
+ Christopher Lagonick-Weitzel

+ 🤔 + Ernesto Acosta
+ Ernesto Acosta

+ 🤔 + + - - -This project follows the -[all-contributors](https://github.com/all-contributors/all-contributors) -specification. Contributions of any kind welcome! +Este proyecto sigue la especificación de [all-contributors](https://github.com/all-contributors/all-contributors). Se aceptan contribuciones de cualquier tipo. ## Contacto -You may reach us for help or ask any question you have on: +Puedes ponerte en contacto con nosotros para ayuda o si tienes alguna pregunta en: -- [Discord](https://castopod.org/discord) (para interacción directa con - desarrolladores y la comunidad) -- [Seguimiento de incidencias](https://code.castopod.org/adaures/castopod/-/issues) - (para informar de errores y solicitar nuevas funcionalidades) +- [Discord](https://castopod.org/discord) (para chatear en tiempo real con los desarrolladores y la comunidad) +- [Seguimiento de problemas](https://code.castopod.org/adaures/castopod/-/issues) (para cualquier solicitud de nueva característica o informe de error) -Alternatively, you can follow us on social media platforms to get news about -Castopod: +Alternativamente, puedes seguirnos en las redes sociales para obtener noticias sobre Castopod: -- [podlibre.social](https://podlibre.social/@castopod) (instancia de Mastodon) -- [[Twitter](https://twitter.com/castopod)](https://twitter.com/castopod) -- [[LinkedIn](https://linkedin.com/company/ad-aures)](https://linkedin.com/company/castopod) -- [Facebook (próximamente?)](https://www.facebook.com/castopod) +- [podlibre.social](https://podlibre.social/@Castopod) (Instancia Mastodon) +- [Twitter](https://twitter.com/castopod) +- [LinkedIn](https://linkedin.com/company/castopod) +- [Facebook](https://www.facebook.com/castopod) ## Patrocinadores -The ongoing development of Castopod is made possible with the support of its -backers. If you'd like to help, please consider -[sponsoring Castopod's development](https://opencollective.com/castopod/contribute). +El desarrollo continuo de Castopod es posible gracias al apoyo de sus patrocinadores. Si quieres ayudar, considera [patrocinar el desarrollo de Castopod](https://opencollective.com/castopod/contribute).
- Logo de Ad Aures - Logo de NLnet + Logo de Ad Aures + Logo de NLnet
## Licencia -[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/) +[Licencia de GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/) -Copyright © 2020-present, [Ad Aures](https://adaures.com/). -https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release -https://img.shields.io/github/license/ad-aures/castopod?color=blue -https://img.shields.io/badge/contributions-welcome-brightgreen.svg -https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg -https://img.shields.io/github/stars/ad-aures/castopod?style=social - -[release]: https://code.castopod.org/adaures/castopod/-/releases -[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md -[contributions]: https://code.castopod.org/adaures/castopod/-/issues -[semantic-release]: https://github.com/semantic-release/semantic-release -[discord]: https://castopod.org/discord -[stars]: https://github.com/ad-aures/castopod/stargazers -[crowdin]: https://translate.castopod.org/project/castopod +Derechos de autor © 2020-presente, [Ad Aures](https://adaures.com/). diff --git a/docs/src/it/contributing/_category_.json b/docs/src/it/contributing/_category_.json index e12f1ce5..b50796bd 100644 --- a/docs/src/it/contributing/_category_.json +++ b/docs/src/it/contributing/_category_.json @@ -1,4 +1,4 @@ { - "label": "Contributing", + "label": "Contribuire", "position": 3 -} +} \ No newline at end of file diff --git a/docs/src/it/contributing/guidelines.md b/docs/src/it/contributing/guidelines.md index 1a53c89e..502d4914 100644 --- a/docs/src/it/contributing/guidelines.md +++ b/docs/src/it/contributing/guidelines.md @@ -1,154 +1,123 @@ --- -title: Guidelines +title: Linee guida --- -# Contributing to Castopod +# Contribuire a Castopod -Love Castopod and want to help? Thanks so much, there's something to do for -everybody! +Ami Castopod e vuoi aiutare? Grazie mille, c'è qualcosa da fare per tutti! -Please take a moment to review this document in order to make the contribution -process easy and effective for everyone involved. +Si prega di prendere un momento per leggere questo documento al fine di rendere il processo di contribuzione facile ed efficace per tutti coloro coinvolti. -Following these guidelines helps to communicate that you respect the time of the -developers managing and developing this open source project. In return, they -should reciprocate that respect in addressing your issue or assessing patches -and features. +Seguire queste linee guida aiuta a comunicare il rispetto del tempo dei sviluppatori che gestiscono e sviluppano questo progetto open source. In cambio, dovrebbero ricambiare questo rispetto affrontando i tuoi problemi o valutando le patch e le funzionalità. -::: info Note +::: info Nota -**Any** contribution made on a repository other than -[the original repository](https://code.castopod.org/adaures/castopod) will not -be accepted. +**Qualsiasi** contributo effettuato su un repository diverso dal +[repository originale](https://code.castopod.org/adaures/castopod) non verrà +accettato. ::: -## Using the issue tracker +## Utilizzare lo strumento di tracciamento problemi -The [issue tracker](https://code.castopod.org/adaures/castopod/-/issues) is the -preferred channel for [bug reports](#bug-reports), -[features requests](#feature-requests) and -[submitting pull requests](#pull-requests). +Lo [strumento di tracciamento problemi](https://code.castopod.org/adaures/castopod/-/issues) è il +canale preferito per [segnalare bug](#segnalare-bug), +[richieste di funzionalità](#richieste-di-funzionalit) e +[inviare richieste pull](#richieste-pull). -## ⚠️ Security issues and vulnerabilities +## ⚠️ Problemi di sicurezza e vulnerabilità -If you encounter any security issue or vulnerability in the Castopod source, -please contact us directly by email at +Se incontri qualsiasi problema di sicurezza o vulnerabilità nel codice sorgente di Castopod, +per favore contattaci direttamente via email a [security@castopod.org](mailto:security@castopod.org) -## Bug reports +## Segnalazione di bug -A bug is a _demonstrable problem_ that is caused by the code in the repository. -Good bug reports are extremely helpful - thank you! +Un bug è un _problema dimostrabile_ causato dal codice nel repository. Le segnalazioni di bug ben fatte sono estremamente utili: grazie! -Guidelines for bug reports: +Linee guida per le segnalazioni di bug: -1. **Use the issue search** — check if the issue has already been - reported. +1. **Utilizza la ricerca delle issue** – controlla se il problema è già stato segnalato. -2. **Check if the issue has been fixed** — try to reproduce it using the - latest `main` branch in the repository. +2. **Controlla se il problema è stato risolto** – prova a riprodurlo utilizzando il branch `main` più recente nel repository. -3. **Isolate the problem** — ideally create a - [reduced test case](https://css-tricks.com/reduced-test-cases/) and a live - example. +3. **Isola il problema** – idealmente crea un +[ridotto caso di test](https://css-tricks.com/reduced-test-cases/) ed un esempio pratico. -A good bug report shouldn't leave others needing to chase you up for more -information. Please try to be as detailed as possible in your report. What is -your environment? What steps will reproduce the issue? What browser(s) and OS -experience the problem? What would you expect to be the outcome? All these -details will help people to fix any potential bugs. +Una buona segnalazione di bug non dovrebbe lasciare agli altri la necessità di cercarti ulteriori informazioni. Cerca di essere il più dettagliato possibile nella tua segnalazione. Quali sono le tue impostazioni? Quali passaggi riprodurranno il problema? Quali browser e sistemi operativi riscontrano il problema? Quale sarebbe l'esito atteso? Tutti questi dettagli aiuteranno le persone a risolvere eventuali bug potenziali. -> [Issue templates](https://docs.gitlab.com/ee/user/project/description_templates.html#using-the-templates) -> have been created for this project. You may use them to help you follow those -> guidelines. +> Sono stati creati dei [modelli di issue](https://docs.gitlab.com/ee/user/project/description_templates.html#using-the-templates) per questo progetto. Puoi utilizzarli per aiutarti a seguire queste linee guida. -## Feature requests +## Richieste di funzionalità -Feature requests are welcome. But take a moment to find out whether your idea -fits with the scope and aims of the project. It's up to _you_ to make a strong -case to convince the project's developers of the merits of this feature. Please -provide as much detail and context as possible. +Le richieste di funzionalità sono benvenute. Tuttavia, prenditi un attimo per scoprire se la tua idea si adatta allo scopo e agli obiettivi del progetto. È tuo compito convincere gli sviluppatori del progetto dei meriti di questa funzionalità. Fornisci il maggior numero di dettagli e contesto possibile. -## Pull requests +## Richieste pull -Good pull requests - patches, improvements, new features - are a fantastic help. -They should remain focused in scope and avoid containing unrelated commits. +Le richieste pull (pull request) ben fatte - patch, miglioramenti, nuove funzionalità - sono di grande aiuto. Devono rimanere focalizzate nell'ambito e evitare commit non correlati. -**Please ask first** before embarking on any significant pull request (e.g. -implementing features, refactoring code, porting to a different language), -otherwise you risk spending a lot of time working on something that the -project's developers might not want to merge into the project. +**Per favore chiedi prima** di intraprendere una richiesta pull significativa (ad esempio implementare funzionalità, ristrutturare il codice, portare in un'altra lingua), altrimenti rischi di dedicare molto tempo a qualcosa che gli sviluppatori del progetto potrebbero non voler integrare nel progetto. -Please adhere to the coding conventions used throughout a project (indentation, -accurate comments, etc.) and any other requirements (such as test coverage). +Si prega di attenersi alle convenzioni di codifica utilizzate in tutto un progetto (indentazione, commenti precisi, ecc.) e ad ogni altro requisito (come la copertura dei test). -Adhering to the following process is the best way to get your work included in -the project: +Attenersi al seguente processo è il modo migliore per far includere il proprio lavoro nel progetto: -1. [Fork](https://docs.gitlab.com/ee/gitlab-basics/fork-project.html) the - project, clone your fork, and configure the remotes: +1. [Forka](https://docs.gitlab.com/ee/gitlab-basics/fork-project.html) il + progetto, clona il tuo fork e configura i remoti: ```bash -# Clone your fork of the repo into the current directory +# Clona il tuo fork del repository nella directory corrente git clone https://code.castopod.org//castopod.git -# Navigate to the newly cloned directory +# Sposta nella directory appena clonata cd castopod -# Assign the original repo to a remote called "upstream" +# Assegna al repository originale un remoto chiamato "upstream" git remote add upstream https://code.castopod.org/adaures/castopod.git ``` -2. If you cloned a while ago, get the latest changes from upstream: +2. Se hai clonato tempo fa, ottieni gli ultimi cambiamenti dal repository upstream: ```bash git checkout main git pull upstream main ``` -3. Create a new topic branch (off the `main` branch) to contain your feature, - change, or fix: +3. Crea un nuovo branch di argomento (dal ramo `main`) per contenere la tua funzionalità, modifica o correzione: ```bash -git checkout -b +git checkout -b ``` -4. Commit your changes in logical chunks. Please adhere to these - [git commit message guidelines](https://conventionalcommits.org/) or your - code is unlikely be merged into the main project. Use Git's - [interactive rebase](https://help.github.com/articles/about-git-rebase/) - feature to tidy up your commits before making them public. +4. Fai il commit delle tue modifiche in blocchi logici. Segui queste + [linee guida per i messaggi di commit di Git](https://conventionalcommits.org/) o il tuo + codice difficilmente verrà integrato nel progetto principale. Utilizza la + funzionalità di [ribase interattivo di Git](https://help.github.com/articles/about-git-rebase/) per sistemare i tuoi commit prima di renderli pubblici. -5. Locally merge (or rebase) the upstream dev branch into your topic branch: +5. Esegui la fusione locale (o il rebase) del ramo dev upstream nel tuo ramo di argomento: ```bash git pull [--rebase] upstream main ``` -6. Push your topic branch up to your fork: +6. Fai push del tuo ramo di argomento nel tuo fork: ```bash -git push origin +git push origin ``` -7. [Open a Pull Request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html#new-merge-request-from-a-fork) - with a clear title and description. +7. [Apri una richiesta pull](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html#new-merge-request-from-a-fork) + con un titolo e una descrizione chiari. -**IMPORTANT**: By submitting a patch, you agree to allow the project owners to -license your work under the terms of the +**IMPORTANTE**: Inviando una patch, accetti di concedere ai proprietari del progetto il +diritto di licenziare il tuo lavoro secondo i termini della [GNU AGPLv3](https://code.castopod.org/adaures/castopod/-/blob/main/LICENSE). -## Collaborating guidelines +## Linee guida per la collaborazione -There are few basic rules to ensure high quality of the project: +Ci sono poche regole di base per garantire un'alta qualità del progetto: -- Before merging, a PR requires at least two approvals from the collaborators - unless it's an architectural change, a large feature, etc. If it is, then at - least 50% of the core team have to agree to merge it, with every team member - having a full veto right. (i.e. every single one can block any PR) -- A PR should remain open for at least two days before merging (does not apply - for trivial contributions like fixing a typo). This way everyone has enough - time to look into it. +- Prima di effettuare la fusione, una pull request richiede almeno due approvazioni dai collaboratori a meno che non si tratti di un cambiamento architettonico, di una grande funzionalità, ecc. In tal caso, almeno il 50% del team principale deve essere d'accordo per unirlo, mentre ogni membro del team ha un pieno diritto di veto (cioè ognuno può bloccare qualsiasi pull request). +- Una pull request dovrebbe rimanere aperta per almeno due giorni prima della fusione (non si applica a contributi banali come correggere un errore di battitura). In questo modo tutti avranno abbastanza tempo per esaminarla. -You are always welcome to discuss and propose improvements to this guideline. +Sei sempre il benvenuto per discutere e proporre miglioramenti a questa guida. \ No newline at end of file diff --git a/docs/src/it/contributing/setup-development.md b/docs/src/it/contributing/setup-development.md index 7e42892a..23c105aa 100644 --- a/docs/src/it/contributing/setup-development.md +++ b/docs/src/it/contributing/setup-development.md @@ -1,45 +1,40 @@ --- -title: Development setup +title: Configurazione per lo sviluppo sidebarDepth: 3 --- -# Setup your development environment +# Configurazione dell'ambiente di sviluppo -## Introduction +## Introduzione -Castopod is a web app based on the `php` framework -[CodeIgniter 4](https://codeigniter.com). +Castopod è un'app web basata sul framework `php` [CodeIgniter 4](https://codeigniter.com). -We use [Docker](https://www.docker.com/) quickly setup a dev environment. A -`docker-compose.yml` and `Dockerfile` are included in the project's root folder -to help you kickstart your contribution. +Utilizziamo [Docker](https://www.docker.com/) per configurare rapidamente un ambiente di sviluppo. Un file `docker-compose.yml` e `Dockerfile` sono inclusi nella cartella radice del progetto per aiutarti ad avviare il tuo contributo. -> You don't need any prior knowledge of Docker to follow the next steps. -> However, if you wish to use your own environment, feel free to do so! +> Non è necessaria alcuna conoscenza precedente di Docker per seguire i passaggi successivi. Tuttavia, se desideri utilizzare il tuo ambiente, sentiti libero di farlo! -## Setup instructions +## Istruzioni di configurazione -### 1. Pre-requisites +### 1. Pre-requisiti -0. Install [docker](https://docs.docker.com/get-docker). +0. Installa [docker](https://docs.docker.com/get-docker). -1. Clone Castopod project by running: +1. Clona il progetto Castopod eseguendo: ```bash git clone https://code.castopod.org/adaures/castopod.git ``` -2. Create a `.env` file with the minimum required config to connect the app to - the database and use redis as a cache handler: +2. Crea un file `.env` con la configurazione minima richiesta per connettere l'app al database e utilizzare redis come gestore della cache: ```ini CI_ENVIRONMENT="development" - # If set to development, you must run `npm run dev` to start the static assets server + # Se impostato su development, è necessario eseguire `npm run dev` per avviare il server degli asset statici vite.environment="development" - # By default, this is set to true in the app config. - # For development, this must be set to false as it is - # on a local environment + # Di default, questo è impostato su true nella configurazione dell'app. + # Per lo sviluppo, deve essere impostato su false in quanto è + # in un ambiente locale app.forceGlobalSecureRequests=false app.baseURL="http://localhost:8080/" @@ -56,368 +51,90 @@ to help you kickstart your contribution. cache.handler="redis" cache.redis.host = "redis" - # You may not want to use redis as your cache handler - # Comment/remove the two lines above and uncomment - # the next line for file caching. + # Potresti non voler utilizzare redis come gestore della cache + # Commenta/rimuovi le due righe sopra e decommenta + # la riga successiva per utilizzare la memorizzazione nella cache dei file. #cache.handler="file" ``` - > _NB._ You can tweak your environment by setting more environment variables - > in your custom `.env` file. See the `env` for examples or the - > [CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html) - > for more info. + > _NB._ Puoi personalizzare il tuo ambiente impostando ulteriori variabili d'ambiente nel tuo file `.env` personalizzato. Consulta il file `env` per esempi o la [Guida dell'utente di CodeIgniter4](https://codeigniter.com/user_guide/index.html) per ulteriori informazioni. -3. (for docker desktop) Add the repository you've cloned to docker desktop's - `Settings` > `Resources` > `File Sharing` +3. (per Docker Desktop) Aggiungi il repository che hai clonato a "File Sharing" in "Impostazioni" di Docker Desktop -### 2. (recommended) Develop inside the app Container with VSCode +### 2. (raccomandato) Sviluppa all'interno del contenitore dell'app con VSCode -If you're working in VSCode, you can take advantage of the `.devcontainer/` -folder. It defines a development environment (dev container) with preinstalled -requirements and VSCode extensions so you don't have to worry about them. All -required services will be loaded automagically! 🪄 +Se stai lavorando in VSCode, puoi approfittare della cartella `.devcontainer/`. Definisce un ambiente di sviluppo (contenitore di sviluppo) con requisiti e estensioni preinstallati di VSCode in modo da non doverti preoccupare di loro. Tutti i servizi necessari verranno caricati automaticamente! 🪄 -1. Install the VSCode extension - [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) -2. `Ctrl/Cmd + Shift + P` > `Open in container` +1. Installa l'estensione di VSCode [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) +2. `Ctrl/Cmd + Maiusc + P` > `Apri nel contenitore` - > The VSCode window will reload inside the dev container. Expect several - > minutes during first load as it is building all necessary services. + > La finestra di VSCode verrà ricaricata all'interno del contenitore di sviluppo. Prevedi alcuni minuti durante il primo caricamento, poiché verranno creati tutti i servizi necessari. - **Note**: The dev container will start by running Castopod's php server. - During development, you will have to start [Vite](https://vitejs.dev)'s dev - server for compiling the typescript code and styles: + **Nota**: Il contenitore di sviluppo verrà avviato eseguendo il server php di Castopod. Durante lo sviluppo, dovrai avviare il server di [Vite](https://vitejs.dev) per compilare il codice typescript e gli stili: ```bash - # run Vite dev server + # avvia il server Vite dev npm run dev ``` - If there is any issue with the php server not running, you can restart them - using the following commands: + Se si riscontrano problemi con il server php che non si avvia, è possibile riavviarlo utilizzando i seguenti comandi: ```bash - # run Castopod server + # avvia il server Castopod php spark serve - 0.0.0.0 ``` -3. You're all set! 🎉 +3. Sei pronto! 🎉 - You're now **inside the dev container**, you may use the VSCode console - (`Terminal` > `New Terminal`) to run any command: + Ora sei **all'interno del contenitore di sviluppo**, puoi utilizzare la console di VSCode (`Terminale` > `Nuovo terminale`) per eseguire qualsiasi comando: ```bash - # PHP is installed + # PHP è installato php -v - # Composer is installed + # Composer è installato composer -V - # npm is installed + # npm è installato npm -v - # git is installed + # git è installato git version ``` -For more info, see -[VSCode Remote Containers](https://code.visualstudio.com/docs/remote/containers) +Per ulteriori informazioni, consulta il sito [Remote Containers di VSCode](https://code.visualstudio.com/docs/remote/containers) -### 3. Start hacking +### 3. Inizia a programmare -You're all set! Start working your magic by updating the project's files! Help -yourself to the -[CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html) for -more insights. +Sei pronto! Inizia il tuo lavoro aggiornando i file del progetto! Ti consigliamo di consultare la [Guida dell'utente di CodeIgniter4](https://codeigniter.com/user_guide/index.html) per ulteriori informazioni. -To see your changes, go to: +Per visualizzare le tue modifiche, visita: -- `http://localhost:8080/` for the Castopod app -- `http://localhost:8888/` for the phpmyadmin interface: +- `http://localhost:8080/` per l'app Castopod +- `http://localhost:8888/` per l'interfaccia di phpmyadmin: - - username: **castopod** + - nome utente: **castopod** - password: **castopod** -### 2-alt. Develop outside the app container +### 2-alt. Sviluppa al di fuori del contenitore dell'app -You do not wish to use the VSCode devcontainer? No problem! +Non desideri utilizzare il contenitore di sviluppo di VSCode? Nessun problema! -1. Start docker containers manually: +1. Avvia manualmente i contenitori Docker: - Go to project's root folder and run: + Vai nella cartella radice del progetto e esegui: ```bash - # starts all services declared in docker-compose.yml file - # -d option starts the containers in the background + # avvia tutti i servizi dichiarati nel file docker-compose.yml + # l'opzione -d avvia i contenitori in background docker-compose up -d - # See all running processes (you should see 3 processes running) + # Vedi tutti i processi in esecuzione (dovresti vedere 3 processi in esecuzione) docker-compose ps - # Alternatively, you can check all docker processes + # In alternativa, puoi controllare tutti i processi Docker docker ps -a ``` - > The `docker-compose up -d` command will boot 4 containers in the - > background: - > - > - `castopod_app`: a php based container with Castopod requirements - > installed - > - `castopod_redis`: a [redis](https://redis.io/) database to handle queries - > and pages caching - > - `castopod_mariadb`: a [mariadb](https://mariadb.org/) server for - > persistent data - > - `castopod_phpmyadmin`: a phpmyadmin server to visualize the mariadb - > database. - -2. Run any command inside the containers by prefixing them with - `docker-compose run --rm app`: - - ```bash - # use PHP - docker-compose run --rm app php -v - - # use Composer - docker-compose run --rm app composer -V - - # use npm - docker-compose run --rm app npm -v - - # use git - docker-compose run --rm app git version - ``` - ---- - -## Going Further - -### Install Castopod's dependencies - -1. Install php dependencies with [Composer](https://getcomposer.org/) - - ```bash - composer install - ``` - - ::: info Note - - The php dependencies aren't included in the repository. Composer will check - the `composer.json` and `composer.lock` files to download the packages with - the right versions. The dependencies will live under the `vendor/` folder. - For more info, check out the - [Composer documentation](https://getcomposer.org/doc/). - - ::: - -2. Install javascript dependencies with [npm](https://www.npmjs.com/) - - ```bash - npm install - ``` - - ::: info Note - - The javascript dependencies aren't included in the repository. Npm will check - the `package.json` and `package.lock` files to download the packages with the - right versions. The dependencies will live under the `node_module` folder. - For more info, check out the [NPM documentation](https://docs.npmjs.com/). - - ::: - -3. Generate static assets: - - ```bash - # build all static assets at once - npm run build:static - - # build specific assets - npm run build:icons - npm run build:svg - ``` - - ::: info Note - - The static assets generated live under the `public/assets` folder, it - includes javascript, styles, images, fonts, icons and svg files. - - ::: - -### Initialize and populate database - -::: tip Tip - -You may skip this section if you go through the install wizard (go to -`/cp-install`). - -::: - -1. Build the database with the migrate command: - - ```bash - # loads the database schema during first migration - php spark migrate -all - ``` - - You may need to undo the migration (rollback): - - ```bash - # rolls back database schema (deletes all tables and their content) - php spark migrate:rollback - ``` - -2. Populate the database with the required data: - - ```bash - # Populates all required data - php spark db:seed AppSeeder - ``` - - You may choose to add data separately: - - ```bash - # Populates all categories - php spark db:seed CategorySeeder - - # Populates all Languages - php spark db:seed LanguageSeeder - - # Populates all podcasts platforms - php spark db:seed PlatformSeeder - - # Populates all Authentication data (roles definition…) - php spark db:seed AuthSeeder - ``` - -3. (optionnal) Populate the database with test data: - - - Populate test data (login: admin / password: AGUehL3P) - - ```bash - php spark db:seed TestSeeder - ``` - - - Populate with fake podcast analytics: - - ```bash - php spark db:seed FakePodcastsAnalyticsSeeder - ``` - - - Populate with fake website analytics: - - ```bash - php spark db:seed FakeWebsiteAnalyticsSeeder - ``` - - TestSeeder will add an active superadmin user with the following credentials: - - - username: **admin** - - password: **AGUehL3P** - -### Useful docker / docker-compose commands - -- Monitor the app container: - -```bash -docker-compose logs --tail 50 --follow --timestamps app -``` - -- Interact with redis server using included redis-cli command: - -```bash -docker exec -it castopod_redis redis-cli -``` - -- Monitor the redis container: - -```bash -docker-compose logs --tail 50 --follow --timestamps redis -``` - -- Monitor the mariadb container: - -```bash -docker-compose logs --tail 50 --follow --timestamps mariadb -``` - -- Monitor the phpmyadmin container: - -```bash -docker-compose logs --tail 50 --follow --timestamps phpmyadmin -``` - -- Restart docker containers: - -```bash -docker-compose restart -``` - -- Destroy all containers, opposite of `up` command: - -```bash -docker-compose down -``` - -- Rebuild app container: - -```bash -docker-compose build app -``` - -Check [docker](https://docs.docker.com/engine/reference/commandline/docker/) and -[docker-compose](https://docs.docker.com/compose/reference/) documentations for -more insights. - -## Known issues - -### Allocation failed - JavaScript heap out of memory - -This happens when running `npm install`. - -👉 By default, docker might not have access to enough RAM. Allocate more memory -and run `npm install` again. - -### (Linux) Files created inside container are attributed to root locally - -You may use Linux user namespaces to fix this on your machine: - -::: info Note - -Replace "username" with your local username - -::: - -1. Go to `/etc/docker/daemon.json` and add: - - ```json - { - "userns-remap": "username" - } - ``` - -2. Configure the subordinate uid/guid: - - ```bash - # in /etc/subuid - username:1000:1 - username:100000:65536 - ``` - - ```bash - # in /etc/subgid - username:1000:1 - username:100000:65536 - ``` - -3. Restart docker: - - ```bash - sudo systemctl restart docker - ``` - -4. That's it! Now, the root user in the container will be mapped to the user on - your local machine, no more permission issues! 🎉 - -You can check -[this great article](https://www.jujens.eu/posts/en/2017/Jul/02/docker-userns-remap/) -to know more about how it works. + \ No newline at end of file diff --git a/docs/src/it/getting-started/_category_.json b/docs/src/it/getting-started/_category_.json index 877a378f..47d572d8 100644 --- a/docs/src/it/getting-started/_category_.json +++ b/docs/src/it/getting-started/_category_.json @@ -1,4 +1,4 @@ { - "label": "Getting Started", + "label": "Iniziare", "position": 2 -} +} \ No newline at end of file diff --git a/docs/src/it/getting-started/auth.md b/docs/src/it/getting-started/auth.md index 8f3b5dc8..25b442e6 100644 --- a/docs/src/it/getting-started/auth.md +++ b/docs/src/it/getting-started/auth.md @@ -1,88 +1,88 @@ --- -title: Autenticazione & Autorizzazione +title: Autenticazione e Autorizzazione sidebarDepth: 3 --- -# Autenticazione & Autorizzazione +# Autenticazione e Autorizzazione Castopod gestisce l'autenticazione e l'autorizzazione utilizzando -`codeigniter/shield` abbinato a regole personalizzate. Ruoli e permessi sono -definiti a due livelli: +`codeigniter/shield` associato a regole personalizzate. I ruoli e i +permessi vengono definiti su due livelli: -1. [intera istanza](#1-instance-wide-roles-and-permissions) -2. [per podcast](#2-per-podcast-roles-and-permissions) +1. [a livello di istanza](#1-ruoli-e-permessi-a-livello-di-istanza) +2. [per podcast](#2-ruoli-e-permessi-per-podcast) -## 1. Ruoli e permessi per l'intera istanza +## 1. Ruoli e permessi a livello di istanza -### Ruoli dell'istanza +### Ruoli nell'istanza - + -| ruolo | descrizione | permessi | -| ----------- | ---------------------------------- | ------------------------------------------------------------------------------------------ | -| Super admin | Ha il pieno controllo su Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks | -| Manager | Gestisce il contenuto di Castopod. | podcasts.create, podcasts.import, persons.manage, pages.manage | -| Podcaster | Utenti generali di Castopod. | admin.access | +| ruolo | descrizione | permessi | +| ------------ | ------------------------------------ | ------------------------------------------------------------------------------------------- | +| Super admin | Ha completo controllo su Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks | +| Gestore | Gestisce i contenuti di Castopod. | podcasts.create, podcasts.import, persons.manage, pages.manage | +| Podcaster | Utenti generali di Castopod. | admin.access | -### Permessi istanza +### Autorizzazioni nell'istanza - + -| permesso | descrizione | -| ----------------------- | ------------------------------------------------------------------------- | -| admin.access | Può accedere alla zona di amministrazione di Castopod. | -| admin.settings | Può accedere alle impostazioni di Castopod. | -| users.manage | Può gestire gli utenti di Castopod. | -| persons.manage | Può gestire le persone. | -| pages.manage | Può gestire le pagine. | -| podcasts.view | Può visualizzare tutti i podcast. | -| podcasts.create | Può creare nuovi podcast. | -| podcasts.import | Può importare podcast. | -| fediverse.manage-blocks | Può impedire agli attori/domini del fediverso di interagire con Castopod. | +| autorizzazione | descrizione | +| ------------------------- | ------------------------------------------------------------------ | +| admin.access | Può accedere all'area di amministrazione di Castopod. | +| admin.settings | Può accedere alle impostazioni di Castopod. | +| users.manage | Può gestire gli utenti di Castopod. | +| persons.manage | Può gestire le persone. | +| pages.manage | Permette di gestire le pagine. | +| podcasts.view | Può visualizzare tutti i podcast. | +| podcasts.create | Può creare nuovi podcast. | +| podcasts.import | Può importare podcast. | +| fediverse.manage-blocks | Può bloccare gli attori/domini fediverse dall'interagire con Castopod. | -## 2. Per podcast roles and permissions +## 2. Ruoli e permessi per podcast -### Per podcast roles +### Ruoli per podcast - + -| role | description | permissions | -| ------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Admin | Has complete control of podcast #{id}. | \* | -| Editor | Manages content and publications of podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments | -| Author | Manages content of podcast #{id} but cannot publish them. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips | -| Guest | General contributor of the podcast #{id}. | view, episodes.view | +| ruolo | descrizione | permessi | +| -----------| ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Admin | Ha il controllo completo sul podcast #{id}. | \* | +| Editor | Gestisce i contenuti e le pubblicazioni del podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments | +| Autore | Gestisce i contenuti del podcast #{id}, ma non può pubblicarli. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips | +| Ospite | Contributore generale del podcast #{id}. | view, episodes.view | -### Per podcast permissions +### Autorizzazioni per podcast - + -| permission | description | -| ---------------------------- | ------------------------------------------------------------------------ | -| view | Can view dashboard and analytics of podcast #{id}. | -| edit | Can edit podcast #{id}. | -| delete | Can delete podcast #{id}. | -| manage-import | Can synchronize imported podcast #{id}. | -| manage-persons | Can manage subscriptions of podcast #{id}. | -| manage-subscriptions | Can manage subscriptions of podcast #{id}. | -| manage-contributors | Can manage contributors of podcast #{id}. | -| manage-platforms | Can set/remove platform links of podcast #{id}. | -| manage-publications | Can publish podcast #{id}. | -| manage-notifications | Can view and mark notifications as read for podcast #{id}. | -| interact-as | Can interact as the podcast #{id} to favourite, share or reply to posts. | -| episodes.view | Can view dashboard and analytics of podcast #{id}. | -| episodes.create | Can create episodes for podcast #{id}. | -| episodes.edit | Can edit podcast #{id}. | -| episodes.delete | Can delete podcast #{id}. | -| episodes.manage-persons | Can manage subscriptions of podcast #{id}. | -| episodes.manage-clips | Can manage video clips or soundbites of podcast #{id}. | -| episodes.manage-publications | Can publish podcast #{id}. | -| episodes.manage-comments | Can create/remove episode comments of podcast #{id}. | +| autorizzazione | descrizione | +| --------------------------- | ----------------------------------------------------------------------------------------- | +| view | Visualizza la dashboard e le statistiche del podcast #{id}. | +| edit | Può modificare il podcast #{id}. | +| delete | Può cancellare il podcast #{id}. | +| manage-imports | Può sincronizzare il podcast importato #{id}. | +| manage-persons | Permette di gestire gli iscritti al podcast #{id}. | +| manage-subscriptions | Permette di gestire gli abbonamenti al podcast #{id}. | +| manage-contributors | Permette di gestire i contributori del podcast #{id}. | +| manage-platforms | Può configurare/rimuovere i link delle piattaforme del podcast #{id}. | +| manage-publications | Può pubblicare il podcast #{id}. | +| manage-notifications | Può visualizzare e contrassegnare come lette le notifiche per il podcast #{id}. | +| interact-as | Può interagire come podcast #{id} per aggiungere, condividere o rispondere ai messaggi. | +| episodes.view | Può visualizzare la dashboard e le statistiche del podcast #{id}. | +| episodes.create | Può creare episode per il podcast #{id}. | +| episodes.edit | Può modificare il podcast #{id}. | +| episodes.delete | Può cancellare il podcast #{id}. | +| episodes.manage-persons | Permette di gestire gli iscritti al podcast #{id}. | +| episodes.manage-clips | Permette di gestire le clip video o parti audio del podcast #{id}. | +| episodes.manage-publications| Può pubblicare il podcast #{id}. | +| episodes.manage-comments | Può creare/eliminare i commenti degli episodi del podcast #{id}. | - + \ No newline at end of file diff --git a/docs/src/it/getting-started/docker.md b/docs/src/it/getting-started/docker.md index 75158bd6..71ea24c0 100644 --- a/docs/src/it/getting-started/docker.md +++ b/docs/src/it/getting-started/docker.md @@ -1,35 +1,30 @@ --- -title: Official Docker images +title: Immagini ufficiali Docker sidebarDepth: 3 --- -# Official Docker images +# Immagini ufficiali di Docker -Castopod pushes 3 Docker images to the Docker Hub during its automated build -process: +Castopod invia 3 immagini Docker all'hub Docker durante il suo processo di +costruzione automatizzata: -- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): an all - in one castopod image using nginx unit -- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): the app bundle - with all of Castopod dependencies -- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an - Nginx configuration for Castopod +- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): un'immagine di castopod all-in-one che utilizza nginx unit +- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): il bundle dell'app con tutte le dipendenze di Castopod +- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): una configurazione Nginx per Castopod -Additionally, Castopod requires a MySQL-compatible database. A Redis database -can be added as a cache handler. +Inoltre, Castopod richiede un database compatibile con MySQL. Un database Redis può essere aggiunto come gestore della cache. -## Supported tags +## Tags supportate -- `develop` [unstable], latest development branch build -- `beta` [stable], latest beta version build -- `latest` [stable], latest version build -- `1.x.x` [stable], specific version build (since `1.0.0`) +- `développer` [instabile], l'ultima versione del ramo di sviluppo +- `beta` [stabili], l'ultima versione beta +- `1.x.x` [stabili], versione specifica (a partire da `1.0.0`) -## Example usage +## Esempio di utilizzo -1. Install [docker](https://docs.docker.com/get-docker/) and - [docker-compose](https://docs.docker.com/compose/install/) -2. Create a `docker-compose.yml` file with the following: +1. Installa [docker](https://docs.docker.com/get-docker/) e + [docker-compose](https://docs.docker.com/compose/install/) +2. Crea un file `docker-compose.yml` con i seguenti contenuti: ```yml version: "3.7" @@ -43,9 +38,9 @@ can be added as a cache handler. environment: MYSQL_DATABASE: castopod MYSQL_USER: castopod - MYSQL_PASSWORD: changeme + MYSQL_PASSWORD: cambiami CP_BASEURL: "https://castopod.example.com" - CP_ANALYTICS_SALT: changeme + CP_ANALYTICS_SALT: cambiami CP_CACHE_HANDLER: redis CP_REDIS_HOST: redis networks: @@ -63,10 +58,10 @@ can be added as a cache handler. volumes: - castopod-db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD: changeme + MYSQL_ROOT_PASSWORD: cambiami MYSQL_DATABASE: castopod MYSQL_USER: castopod - MYSQL_PASSWORD: changeme + MYSQL_PASSWORD: cambiami restart: unless-stopped redis: @@ -87,72 +82,72 @@ can be added as a cache handler. castopod-db: ``` - You have to adapt some variables to your needs (e.g. `CP_BASEURL`, - `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` and `CP_ANALYTICS_SALT`). + È necessario adattare alcune variabili alle tue esigenze (ad esempio `CP_BASEURL`, + `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` e `CP_ANALYTICS_SALT`). -3. Setup a reverse proxy for TLS (SSL/HTTPS) +3. Configura un reverse proxy per TLS (SSL/HTTPS) - TLS is mandatory for ActivityPub to work. This job can easily be handled by - a reverse proxy, for example with [Caddy](https://caddyserver.com/): + TLS è obbligatorio per far funzionare ActivityPub. Questa operazione può essere facilmente gestita da un reverse proxy, ad esempio con [Caddy](https://caddyserver.com/): - ``` - #castopod - castopod.example.com { - reverse_proxy localhost:8000 - } - ``` + ``` + #castopod + castopod.example.com { + reverse_proxy localhost:8000 + } + ``` -4. Run `docker-compose up -d`, wait for it to initialize and head on to - `https://castopod.example.com/cp-install` to finish setting up Castopod! +4. Esegui `docker-compose up -d`, aspetta che si inizializzi su + `https://castopod.example.com/cp-install` per completare la configurazione di + Castopod! -5. You're all set, start podcasting! 🎙️🚀 +5. Sei pronto per iniziare a creare podcast! 🎙️🚀 -## Environment Variables +## Variabili d'ambiente -- **castopod/castopod** and **castopod/app** +- **castopod/castopod** e **castopod/app** - | Variable name | Type (`default`) | Default | - | ------------------------------------- | ----------------------- | ---------------- | - | **`CP_BASEURL`** | string | `undefined` | - | **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` | - | **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` | - | **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` | - | **`CP_ANALYTICS_SALT`** | string | `undefined` | - | **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` | - | **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` | - | **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` | - | **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` | - | **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` | - | **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` | - | **`CP_REDIS_HOST`** | ?string | `"localhost"` | - | **`CP_REDIS_PASSWORD`** | ?string | `null` | - | **`CP_REDIS_PORT`** | ?number | `6379` | - | **`CP_REDIS_DATABASE`** | ?number | `0` | - | **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` | - | **`CP_EMAIL_FROM`** | ?string | `undefined` | - | **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` | - | **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` | - | **`CP_EMAIL_SMTP_PORT`** | ?number | `25` | - | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` | - | **`CP_ENABLE_2FA`** | ?boolean | `undefined` | - | **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` | - | **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` | - | **`CP_MEDIA_S3_KEY`** | ?string | `undefined` | - | **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` | - | **`CP_MEDIA_S3_REGION`** | ?string | `undefined` | - | **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` | - | **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` | - | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` | - | **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` | - | **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` | - | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | - | **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` | - | **`CP_TIMEOUT`** | ?number | `900` | + | Nome variabile | Tipo (`default`) | Predefinito | + | -------------------------------- | ----------------------- | ---------------- | + | **`CP_BASEURL`** | stringa | `undefined` | + | **`CP_MEDIA_BASEURL`** | ?stringa | `CP_BASEURL` | + | **`CP_ADMIN_GATEWAY`** | ?stringa | `"cp-admin"` | + | **`CP_AUTH_GATEWAY`** | ?stringa | `"cp-auth"` | + | **`CP_ANALYTICS_SALT`** | stringa | `undefined` | + | **`CP_DATABASE_HOSTNAME`** | ?stringa | `"mariadb"` | + | **`CP_DATABASE_NAME`** | ?stringa | `MYSQL_DATABASE` | + | **`CP_DATABASE_USERNAME`** | ?stringa | `MYSQL_USER` | + | **`CP_DATABASE_PASSWORD`** | ?stringa | `MYSQL_PASSWORD` | + | **`CP_DATABASE_PREFIX`** | ?stringa | `"cp_"` | + | **`CP_CACHE_HANDLER`** | [`"file"` o `"redis"`] | `"file"` | + | **`CP_REDIS_HOST`** | ?stringa | `"localhost"` | + | **`CP_REDIS_PASSWORD`** | ?stringa | `null` | + | **`CP_REDIS_PORT`** | ?numero | `6379` | + | **`CP_REDIS_DATABASE`** | ?numero | `0` | + | **`CP_EMAIL_SMTP_HOST`** | ?stringa | `undefined` | + | **`CP_EMAIL_FROM`** | ?stringa | `undefined` | + | **`CP_EMAIL_SMTP_USERNAME`** | ?stringa | `"localhost"` | + | **`CP_EMAIL_SMTP_PASSWORD`** | ?stringa | `null` | + | **`CP_EMAIL_SMTP_PORT`** | ?numero | `25` | + | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` o `"ssl"`] | `"tls"` | + | **`CP_ENABLE_2FA`** | ?booleano | `undefined` | + | **`CP_MEDIA_FILE_MANAGER`** | ?stringa | `undefined` | + | **`CP_MEDIA_S3_ENDPOINT`** | ?stringa | `undefined` | + | **`CP_MEDIA_S3_KEY`** | ?stringa | `undefined` | + | **`CP_MEDIA_S3_SECRET`** | ?stringa | `undefined` | + | **`CP_MEDIA_S3_REGION`** | ?stringa | `undefined` | + | **`CP_MEDIA_S3_BUCKET`** | ?stringa | `undefined` | + | **`CP_MEDIA_S3_PROTOCOL`** | ?numero | `undefined` | + | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?booleano | `undefined` | + | **`CP_MEDIA_S3_KEY_PREFIX`** | ?stringa | `undefined` | + | **`CP_DISABLE_HTTPS`** | ?[`0` o `1`] | `undefined` | + | **`CP_MAX_BODY_SIZE`** | ?numero (con suffisso) | `512M` | + | **`CP_PHP_MEMORY_LIMIT`** | ?numero (con suffisso) | `512M` | + | **`CP_TIMEOUT`** | ?numero | `900` | - **castopod/web-server** - | Variable name | Type | Default | - | ---------------------- | --------------------- | ------- | - | **`CP_APP_HOSTNAME`** | ?string | `"app"` | - | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | - | **`CP_TIMEOUT`** | ?number | `900` | + | Nome variabile | Tipo | Predefinito | + | ---------------------- | --------------------- | ---------- | + | **`CP_APP_HOSTNAME`** | ?stringa | `"app"` | + | **`CP_MAX_BODY_SIZE`** | ?numero (con suffisso) | `512M` | + | **`CP_TIMEOUT`** | ?numero | `900` | \ No newline at end of file diff --git a/docs/src/it/getting-started/install.md b/docs/src/it/getting-started/install.md index af405daf..7c016b7a 100644 --- a/docs/src/it/getting-started/install.md +++ b/docs/src/it/getting-started/install.md @@ -1,221 +1,143 @@ --- -title: Installation +title: Installazione sidebarDepth: 3 --- -# How to install Castopod? +# Come installare Castopod ? -Castopod was thought-out to be easy to install. Whether using dedicated or -shared hosting, you can install it on most PHP-MySQL compatible web servers. +Castopod è progettato per essere facile da installare. Che tu stia usando un +hosting dedicato o condiviso, puoi installarlo sulla maggior parte dei +server web compatibili con PHP-MySQL. -::: tip Note +::: tip Nota -We've released official Docker images for Castopod! +Abbiamo rilasciato immagini Docker ufficiali per Castopod! -If you prefer using Docker, you may skip this and go straight to the -[docker documentation](./docker.md) for Castopod. +Se preferisci utilizzare Docker, puoi saltare questa parte e andare +direttamente alla [documentazione Docker](./docker.md) per Castopod. ::: -## Requirements +## Prerequisiti -- PHP v8.1 only -- MySQL version 5.7 or higher or MariaDB version 10.2 or higher -- HTTPS support -- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - incoming requests +- PHP v8.1 solo +- Versione MySQL 5.7 o superiore o MariaDB version 10.2 o superiore +- Supporto HTTPS +- Un [orologio sincronizzato con NTP](https://wiki.debian.org/NTP) per convalidare le richieste in arrivo di federtazione -### PHP v8.1 only +### PHP v8.1 solo -PHP version 8.1 is required, with the following extensions installed: +È richiesta la versione 8.1 di PHP, con le seguenti estensioni installate: -- [intl](https://php.net/manual/en/intl.requirements.php) -- [libcurl](https://php.net/manual/en/curl.requirements.php) -- [mbstring](https://php.net/manual/en/mbstring.installation.php) -- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**, - **PNG** and **WEBP** libraries. -- [exif](https://www.php.net/manual/en/exif.installation.php) +- [intl](https://www.php.net/manual/fr/intl.requirements.php) +- [libcurl](https://www.php.net/manual/fr/curl.requirements.php) +- [mbstring](https://www.php.net/manual/fr/mbstring.installation.php) +- [gd](https://www.php.net/manual/en/image.installation.php) con **JPEG**, + **PNG** e le librerie **WEBP**. +- [exif](https://www.php.net/manual/fr/exif.installation.php) -Additionally, make sure that the following extensions are enabled in your PHP: +Inoltre, assicurati che le seguenti estensioni siano abilitate nel tuo PHP: -- json (enabled by default - don't turn it off) -- xml (enabled by default - don't turn it off) -- [mysqlnd](https://php.net/manual/en/mysqlnd.install.php) +- json (abilitato per impostazione predefinita: non disabilitarlo) +- xml (abilitato per impostazione predefinita: non disabilitarlo) +- [mysqlnd](https://www.php.net/manual/fr/mysqlnd.install.php) -### MySQL compatible database +### Database compatibile con MySQL -> We recommend using [MariaDB](https://mariadb.org). +> Ti consigliamo di utilizzare [MariaDB](https://mariadb.org). -::: warning Warning +::: warning Attento -Castopod only works with supported MySQL 5.7 or higher compatible databases. It -will break with the previous MySQL v5.6 for example as its end of life was on -February 5, 2021. +Castopod funziona solo con database MySQL versione 5.7 o successiva. +Le versioni 5.6 (che hanno smesso di ricevere supporto il 5 febbraio 2021) o precedenti di +MySQL non funzioneranno. ::: -You will need the server hostname, database name, username and password to -complete the installation process. If you do not have these, please contact your -server administrator. +Avrai bisogno del nome host del server, del nome del database, del nome +utente e della password per completare il processo di installazione. Se non +hai queste informazioni, ti preghiamo di contattare l'amministratore. -#### Privileges +#### Permessi di accesso -User must have at least these privileges on the database for Castopod to work: -`CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`, `UPDATE`, -`REFERENCES`, `CREATE VIEW`. +L'utente deve avere almeno questi permessi di accesso al database per far +funzionare Castopod: `CREATE`, `ALTER`, `DELETE`, `EXECUTE`, +`INDEX`,`INSERT`, `SELECT`, `UPDATE`,`REFERENCES`, `CREATE VIEW`. -### (Optional) FFmpeg v4.1.8 or higher for Video Clips +### (Facoltativo) FFmpeg v4.1.8 o superiore per i video clip -[FFmpeg](https://www.ffmpeg.org/) version 4.1.8 or higher is required if you -want to generate Video Clips. The following extensions must be installed: +[FFmpeg](https://www.ffmpeg.org/) versione 4.1.8 o superiore è richiesto se si +desidera generare video clip. L'estensione seguente deve essere installata: -- **FreeType 2** library for +- la libreria **FreeType 2** per [gd](https://www.php.net/manual/en/image.installation.php). -### (Optional) Other recommendations +### (Facoltativo) Altri consigli -- Redis for better cache performances. -- CDN for static files caching and better performances. -- e-mail gateway for lost passwords. +- Redis per una migliore performance nella cache. +- CDN per la cache dei file statici e una migliore performance. +- Gateway di posta per le password dimenticate. -## Install instructions +## Istruzioni di installazione -### Pre-requisites +### Prerequisiti -0. Get a Web Server with [requirements](#requirements) installed -1. Create a MySQL database for Castopod with a user having access and - modification privileges (for more info, see - [MySQL compatible database](#mysql-compatible-database)). -2. Activate HTTPS on your domain with an _SSL certificate_. -3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto - the web server if you haven’t already. - - ⚠️ Set the web server document root to the `public/` sub-folder within the - `castopod` folder. -4. Add **cron tasks** on your web server for various background processes - (replace the paths accordingly): +0. Prendi un server web con i [prerequisiti](#prerequisites) installati +1. Crea un database MySQL per Castopod con un utente che abbia i + permessi di accesso e modifica (per ulteriori informazioni, vedi + [Database compatibile con MySQL](#mysql-compatible-database)). +2. Abilita HTTPS sul tuo dominio con un _certificato SSL_. +3. Scarica e decomprimi l'ultimo [pacchetto di Castopod](https://castopod.org/) + sul server web se non l'hai già fatto. + - ⚠️ Assicurati di puntare la radice dei documenti del server web alla sotto-cartella + `public/` della cartella `castopod`. +4. Aggiungi **attività cron** al tuo server web per vari processi in background + (sostituisci i percorsi di conseguenza): ```bash - * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1 + * * * * * /percorso/all/php /percorso/di/castopod/spark tasks:run >> /dev/null 2>&1 ``` - **Note** - If you do not add this cron task, the following Castopod features - will not work: + **Nota** - Se non aggiungi questo task cron, le seguenti funzionalità di Castopod + non funzioneranno: - - Importing a podcast from an existing RSS feed - - Broadcasting social activities to your followers in the fediverse - - Broadcasting episodes to open hubs using + - Importazione di un podcast da un feed RSS esistente + - Diffusione delle attività sociali ai tuoi seguaci nel fediverso + - Diffusione di episodi ad hub aperti usando [WebSub](https://en.wikipedia.org/wiki/WebSub) - - Generating video clips - - [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips) + - Generazione di video clip - + [richiede FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips) -### (recommended) Install Wizard +### (Metodo consigliato) Installatore -1. Run the Castopod install script by going to the install wizard page - (`https://your_domain_name.com/cp-install`) in your favorite web browser. -2. Follow the instructions on your screen. -3. Start podcasting! +1. Esegui lo script di installazione di Castopod andando alla pagina + dell'installatore (`https://il_tuo_nome_di_dominio.com/cp-install`) nel tuo + browser web preferito. +2. Segui le istruzioni visualizzate. +3. Inizia a podcastare ! -::: info Note +:::info Nota -The install script writes a `.env` file in the package root. If you cannot go -through the install wizard, you can create and edit the `.env` file manually -based on the `.env.example` file. +Lo script di installazione crea un file `.env` nella root del pacchetto. Se non +puoi utilizzare l'installatore, puoi creare ed editare manualmente il file `.env` basandoti +sul file `.env.example`. ::: -### Email/SMTP setup +### Configurazione email/SMTP -Email configuration is required for some features to work properly (eg. -retrieving your forgotten password, sending instructions to premium subscribers, -…) +La configurazione dell'email è necessaria affinché alcune funzionalità funzionino correttamente (ad es. +recuperare la password dimenticata, inviare istruzioni agli abbonati premium, ...) -You may add your email configuration in your instance's `.env` like so: +Puoi aggiungere la configurazione dell'email nel file `.env` della tua istanza come segue: ```ini # […] -email.fromEmail="your_email_address" -email.SMTPHost="your_smtp_host" -email.SMTPUser="your_smtp_user" -email.SMTPPass="your_smtp_password" +email.fromEmail="tuo_indirizzo_email" +email.SMTPHost="il_tuo_host_smtp" +email.SMTPUser="il_tuo_utente_smtp" +email.SMTPPass="la_tua_password_smtp" ``` -#### Email config options - -| Variable name | Type | Default | -| ---------------- | -------------------- | ------------ | -| **`fromEmail`** | string | `undefined` | -| **`fromName`** | string | `"Castopod"` | -| **`SMTPHost`** | string | `undefined` | -| **`SMTPUser`** | string | `undefined` | -| **`SMTPPass`** | string | `undefined` | -| **`SMTPPort`** | number | `25` | -| **`SMTPCrypto`** | [`"tls"` or `"ssl"`] | `"tls"` | - -### Media storage - -By default, files are saved to the `public/media` folder using the file system. -If you need to relocate the `media` folder to a different location, you can -specify it in your `.env` file as shown below: - -```ini -# […] - -media.root="media" -media.storage="/mnt/storage" -``` - -In this example, the files will be saved to the /mnt/storage/media folder. Make -sure to also update your web server configuration to reflect this change. - -### S3 - -If you prefer storing your media files on an S3 compatible storage, you may -specify it in your `.env`: - -```ini -# […] - -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" -``` - -#### S3 config options - -| Variable name | Type | Default | -| ----------------------- | ------- | ----------- | -| **`endpoint`** | string | `undefined` | -| **`key`** | string | `undefined` | -| **`secret`** | string | `undefined` | -| **`region`** | string | `undefined` | -| **`bucket`** | string | `castopod` | -| **`protocol`** | number | `undefined` | -| **`pathStyleEndpoint`** | boolean | `false` | -| **`keyPrefix`** | string | `undefined` | - -## Community packages - -If you don't want to bother with installing Castopod manually, you may use one -of the packages created and maintained by the open-source community. - -### Install with YunoHost - -[YunoHost](https://yunohost.org/) is a distribution based on Debian GNU/Linux -made up of free and open-source software packages. It manages the hardships of -self-hosting for you. - -
- - - Install Castopod with YunoHost - - -Github -Repo - -
+#### Opzioni di configurazione \ No newline at end of file diff --git a/docs/src/it/getting-started/security.md b/docs/src/it/getting-started/security.md index e205698d..e2329eff 100644 --- a/docs/src/it/getting-started/security.md +++ b/docs/src/it/getting-started/security.md @@ -1,26 +1,21 @@ --- -title: Security +title: Sicurezza --- -# Security concerns +# Domande di sicurezza -Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP -framework that encourages -[good security practices](https://codeigniter.com/user_guide/concepts/security.html). +Castopod è sviluppato su [CodeIgniter4](https://codeigniter.com/), un framework PHP che promuove [buone pratiche di sicurezza](https://codeigniter.com/user_guide/concepts/security.html). -To maximize your instance's safety and prevent any malicious attack, we -recommend you update all your Castopod files permissions after installation or -updates (to avoid any prior permission error): +Per garantire la massima sicurezza della tua applicazione e prevenire attacchi malevoli, ti consigliamo di aggiornare le autorizzazioni dei file di Castopod dopo l'installazione e ogni aggiornamento (evitando errori di accesso ai file): -- `writable/` folder must be **readable** and **writable**. -- `public/media/` folder must be **readable** and **writable**. -- any other file must be set to **readonly**. +- La cartella `writable/` deve essere accessibile in **lettura** e **scrittura**. +- La cartella `public/media/` deve essere accessibile in **lettura** e **scrittura**. +- Qualsiasi altro file deve essere accessibile in **sola lettura**. -For instance, if you are using Apache or NGINX with Ubuntu you may do the -following: +Ad esempio, se stai utilizzando Apache o NGINX con Ubuntu, puoi eseguire i seguenti comandi: ```bash -sudo chown -R root:root /path/to/castopod -sudo chown -R www-data:www-data /path/to/castopod/writable -sudo chown -R www-data:www-data /path/to/castopod/public/media -``` +sudo chown -R root:root /percorso/di/castopod +sudo chown -R www-data:www-data /percorso/di/castopod/writable +sudo chown -R www-data:www-data /percorso/di/castopod/public/media +``` \ No newline at end of file diff --git a/docs/src/it/getting-started/update.md b/docs/src/it/getting-started/update.md index 76668ae3..5f8b3f0f 100644 --- a/docs/src/it/getting-started/update.md +++ b/docs/src/it/getting-started/update.md @@ -1,109 +1,102 @@ --- -title: Update +title: Aggiornamento sidebarDepth: 3 --- -# How to update Castopod? +# Come installare Castopod? -After installing Castopod, you may want to update your instance to the latest -version in order to enjoy the latest features ✨, bug fixes 🐛 and performance -improvements ⚡. +Dopo aver installato Castopod, puoi aggiornare la tua istanza all'ultima versione per usufruire delle ultime funzionalità ✨, dei bug fix 🐛 e delle miglioramenti delle prestazioni ⚡. -## Update instructions +## Istruzioni per l'aggiornamento -0. ⚠️ Before any update, we highly recommend you backup your Castopod files and - database. +0. ⚠️ Prima di effettuare un aggiornamento, ti consigliamo vivamente di fare un backup dei tuoi file Castopod e del tuo database. - - cf. - [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) + - vedi + [Dovrei fare un backup prima di aggiornare?](#should-i-make-a-backup-before-updating) -1. Go to the - [releases page](https://code.castopod.org/adaures/castopod/-/releases) and - see if your instance is up to date with the latest Castopod version +1. Vai alla + [pagina delle release](https://code.castopod.org/adaures/castopod/-/releases) e + verifica se la tua istanza è aggiornata all'ultima versione di Castopod. - - cf. - [Where can I find my Castopod version?](#where-can-i-find-my-castopod-version) + - vedi + [Dove posso trovare la versione di Castopod?](#where-can-i-find-my-castopod-version) -2. Download the latest release package named `Castopod Package`, you may choose - between the `zip` or `tar.gz` archives +2. Scarica l'ultima versione denominata `Pacchetto di Castopod`, puoi scegliere tra gli archivi `zip` o `tar.gz`. - - ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code - - Note that you can also download the latest package from + - ⚠️ Assicurati di scaricare il Pacchetto di Castopod e **NON** il codice sorgente + - Nota che puoi anche scaricare l'ultimo pacchetto da [castopod.org](https://castopod.org/) -3. On your server: +3. Sul tuo server: - - Remove all files except `.env` and `public/media` - - Copy the new files from the downloaded package into your server + - Elimina tutti i file tranne `.env` e `public/media` + - Copia i nuovi file dal pacchetto scaricato sul tuo server - ::: info Note + ::: info Nota - You may need to reset files permissions as during the install process. - Check [Security Concerns](./security.md). + Potrebbe essere necessario reimpostare i permessi dei file come + fatto durante il processo di installazione. Vedi + [Security Concerns](./security.md). ::: -4. Update your database schema from your `Castopod Admin` > `About` page or by - running: +4. Aggiorna lo schema del database dalla pagina `Castopod Admin` > `About` o eseguendo: ```bash php spark castopod:database-update ``` -5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > +5. Cancella la cache dalla pagina `Castopod Admin` > `Settings` > `general` > `Housekeeping` -6. ✨ Enjoy your fresh instance, you're all done! +6. ✨ Goditi la tua nuova istanza, hai finito! -::: info Note +::: info Nota -Releases may come with additional update instructions (see -[releases page](https://code.castopod.org/adaures/castopod/-/releases)). +Le versioni potrebbero essere accompagnate da istruzioni di aggiornamento +aggiuntive (vedi la +[page delle release notes](https://code.castopod.org/adaures/castopod/-/releases)). -- cf. - [I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do) +- vedi + [Non ho aggiornato la mia istanza per molto tempo... Cosa dovrei fare?](#je-nai-pas-mis-à-jour-mon-instance-depuis-longtemps-que-devrais-je-faire) ::: -## Fully Automated updates +## Aggiornamenti completamente automatizzati -> Coming soon... 👀 +> Prossimamente... 👀 -## Frequently asked questions (FAQ) +## Domande frequenti (FAQ) -### Where can I find my Castopod version? +### Dove posso trovare la versione di Castopod? -Go to your Castopod admin panel, the version is displayed on the bottom left -corner. +Vai al pannello di amministrazione di Castopod, la versione viene visualizzata in +basso a sinistra. -Alternatively, you can find the version in the `app > Config > Constants.php` -file. +Puoi anche trovare la versione nell'applicazione +`> Configuration > Constantes.php` cartella. -### [I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do) +### Non ho aggiornato la mia istanza per molto tempo... Cosa dovrei fare? -No problem! Just get the latest release as described above. Only, when going -through the release instructions (4), perform them sequentially, from the oldest -to the newest. +Nessun problema! Basta ottenere l'ultima versione come descritto +sopra. Quando esegui le istruzioni per l'aggiornamento (4), eseguile +sequenzialmente, dalla versione più vecchia alla più recente. -> You may want to backup your instance depending on how long you haven't updated -> Castopod. +> Dovresti fare un backup della tua istanza in base alla data dell'ultimo aggiornamento di Castopod. -For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to +Ad esempio, se sei alla versione `v1.0.0-alpha.42` e desideri aggiornare alla `v1.0.0-beta.1`: -0. (highly recommended) Make a backup of your files and database. +0. (fortemente consigliato) Esegui un backup dei tuoi file e del tuo database. -1. Download the latest release, overwrite your files whilst keeping `.env` and - `public/media`. +1. Scarica l'ultima versione, sovrascrivi i file mantenendo + `.env` e `public/media`. -2. Go through each release update instructions sequentially (from oldest to - newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`, - `v1.0.0-alpha.45`, …, `v1.0.0-beta.1`. +2. Esegui le istruzioni per l'aggiornamento uno dopo l'altro (dal più vecchio al più recente). -3. ✨ Enjoy your fresh instance, you're all done! +3. ✨ La tua nuova istanza è pronta! -### Should I make a backup before updating? +### Devo fare un backup prima di aggiornare? -We advise you do, so you don't lose everything if anything goes wrong! +Ti consigliamo di farlo, per non perdere tutto in caso di problemi! -More generally, we advise you make regular backups of your Castopod files and -database to prevent you from losing it all… +In generale, ti consigliamo di creare regolarmente un backup dei tuoi file Castopod e del tuo database per evitare di perdere tutto... \ No newline at end of file diff --git a/docs/src/it/index.md b/docs/src/it/index.md index 42ec8ed0..f7cfc5eb 100644 --- a/docs/src/it/index.md +++ b/docs/src/it/index.md @@ -2,171 +2,120 @@ sidebarDepth: 2 --- -# Welcome 👋 +# Benvenuto 👋 [![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![stars-badge]][stars] -Castopod is a free & open-source hosting platform made for podcasters who want -engage and interact with their audience. +Castopod è una piattaforma di hosting gratuita e open-source progettata per i podcaster che desiderano interagire con il proprio pubblico. -Castopod is easy to install and was built on top of -[CodeIgniter4](https://codeigniter.com/), a powerful PHP framework with a very -small footprint. +Castopod è facile da installare ed è stato progettato con [CodeIgniter4](https://codeigniter.com/), un framework PHP potente e leggero. -## Features +## Caratteristiche -- 🌱  Free & open-source (AGPL v3 License) -- 🔐  Focused on data sovereignty: your content, audience, and analytics - belong to you, and you only -- 🪄  Podcasting 2.0 features: GUID, locked, transcripts, funding, - chapters, location, persons, soundbites, … -- 💬  Built-in social network: - - 🚀  Castopod is part of the Fediverse, a decentralized social network - - ❤️  Create posts, share, favourite, and comment on episodes -- 📈  Built-in analytics: - - ⚖️  GDPR / CCPA / LGPD compliant - - 🪙  Standard IABv2 audience measurement - - 🏡  On-premises analytics, no third party involved -- 📢  Built-in marketing tools: - - ✅  SEO ready (open-graph meta-tags, JSON-LD, …) - - 📱  PWA: install as a standalone app - - 🎨  Customizable theme colors - - 🎬  Generate ready-to-share Video clips from episodes - - 🔉  Generate soundbites - - ▶️  Embeddable player, embed your episodes on any website -- 💸  Monetization: - - 🔗  Funding links - - 📲  listen-to-click ads +- 🌱  Libero, gratuito e open-source (Licenza AGPL v3) +- 🔐  orientato alla sovranità dei dati: il tuo contenuto, la tua audience e le tue statistiche ti appartengono e solo a te +- 🪄 Funzionalità del Podcasting 2.0: GUID, blocco, trascrizioni, finanziamento, capitoli, geolocalizzazione, ospiti, estratti audio, ... +- 💬  Social network integrato: + - 🚀  Castopod fa parte del Fediverso, una rete sociale decentralizzata + - ❤️  Crea pubblicazioni, condividi, metti in preferiti e commenta gli episodi +- 📈  Statistiche integrate: + - ⚖️  Conforme GDPR / CCPA / LGPD + - 🪙 Misurazione dell'audience IABv2 + - 🏡  Statistiche integrate, nessuna terza parte coinvolta +- 📢  Strumenti di marketing integrati: + - ✅  Pronto per l'ottimizzazione per i motori di ricerca (metadati open-graph, JSON-LD...) + - 📱  PWA: installa come app standalone + - 🎨  Colori del tema personalizzabili + - 🎬  Genera clip video pronte per la condivisione dagli episodi + - 🔉  Genera estratti audio + - ▶️  Incorpora i tuoi episodi in qualsiasi sito web +- 💸  Monetizzazione: + - 🔗  Link di finanziamento + - 📲  pubblicità "listen-to-click" - 🤝  value4value / WebMonetization - - 💎  Premium podcasts -- 📡  Publish your episodes everywhere with RSS: - - 📱  On all indexes and apps: Podcast Index, Apple Podcasts, Spotify, - Google Podcasts, Deezer, Podcast Addict, Podfriend, … - - ⚡  Broadcast your episodes instantly with WebSub -- 📥  Podcast import: move your existing podcast into Castopod -- 📤  Move your podcast out of Castopod -- 🔀  Multi-tenant: host as many podcasts as you want -- 👥  Multi-user: add contributors and set roles -- 🌎  i18n support: translated in English, French, Polish, German, - Brazilian Portuguese & Spanish… with - [more to come](https://translate.castopod.org)! + - 💎  Podcast premium +- 📡 Pubblica i tuoi episodi ovunque con RSS: + - 📱  Su tutti gli indici e le applicazioni: Podcast Index, Podcasts Apple, Spotify, Google Podcasts, Deezer, Podcast Addict, Podfriend... + - ⚡ Trasmetti i tuoi episodi istantaneamente con WebSub +- 📥  Importa il tuo podcast: sposta il tuo podcast esistente su Castopod +- 📤  Sposta il tuo podcast su un altro servizio di hosting +- 🔀  Multi-tenant: ospita quanti podcast desideri +- 👥  Multi-utente: aggiungi contributori e assegna i loro ruoli +- 🌎  supporto i18n: tradotto in inglese, francese, polacco, tedesco, portoghese, brasiliano e spagnolo... e [altro in futuro](https://translate.castopod.org)! -## Motivation +## Perché Castopod? -The podcasting ecosystem is decentralized by nature: you can create your podcast -as an RSS file, publish it on the web and have it shared everywhere online. +L'ecosistema del podcasting è decentralizzato per natura: puoi creare il tuo podcast come file RSS, pubblicarlo sul web e farlo condividere ovunque online. -It is in fact one of the only media to have stayed this way for a long time. +È infatti uno dei pochi mezzi di comunicazione che è rimasto così a lungo. -As usages are evolving, more and more people are getting into podcasts: whether -it is creators finding new ways to share their ideas, or listeners in the search -for better content. +Con l'evolversi degli usi, sempre più persone si stanno avvicinando ai podcast: sia che si tratti di creatori che cercano nuovi modi per condividere le proprie idee, sia che si tratti di ascoltatori alla ricerca di contenuti migliori. -With podcasting becoming more widely used, some companies are trying to shift it -towards a more controlled and centralized medium. +Con l'aumento dell'uso dei podcast, alcune aziende stanno cercando di trasformarlo in un mezzo più controllato e centralizzato. -Castopod was created in an effort to provide an open and sustainable alternative -to hosting your podcasts, promoting decentralization to ensure that podcasters -creativity can express itself. +Castopod è stato creato con l'obiettivo di fornire un'alternativa aperta e sostenibile all'hosting dei tuoi podcast, promuovendo la decentralizzazione per garantire che la creatività dei podcaster possa esprimersi. -This project is pushed by the open-source community, and specifically by the -[Fediverse](https://fediverse.party/en/fediverse/) and -[Podcasting 2.0](https://podcastindex.org/) movements. +Questo progetto è sostenuto dalla comunità open-source, e in particolare dai movimenti [Fediverse](https://fediverse.party/en/fediverse/) e [Podcasting 2.0](https://podcastindex.org/). -## Comparison with other solutions +## Confronto con altre soluzioni -We believe that a solution is not necessarily right for everyone, it highly -depends on your needs. So, here are comparisons with other tools to help you to -gauge whether Castopod is the right fit for you. +Crediamo che una soluzione non sia necessariamente adatta a tutti, dipende molto dalle tue esigenze. Ecco quindi alcuni confronti con altri strumenti per aiutarti a valutare se Castopod è quello giusto per te. ### Castopod vs Wordpress -Castopod is often referred to as "the Wordpress for podcasts" because of the -similarities between the two. In some ways this is true. And actually, Castopod -was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption -from the community and the number of websites running it. +Castopod viene spesso definito come "il Wordpress dei podcast" a causa delle somiglianze tra i due. In qualche modo è vero. E in realtà, Castopod è stato fortemente ispirato dall'ecosistema di Wordpress, vedendo la facilità di adozione da parte della comunità e il numero di siti web che lo utilizzano. -Just like Wordpress, Castopod is free & open source, built using PHP with a -MySQL database and is packaged in a way that you can easily install on most web -servers. +Proprio come Wordpress, Castopod è gratuito e open source, costruito con PHP e un database MySQL e viene confezionato in modo da poterlo facilmente installare sulla maggior parte dei server web. -Wordpress is a great way to create your website and extend it with plugins to -get what you want. It is a full fledged CMS that helps you get any type of -website online. +Wordpress è un ottimo modo per creare il tuo sito web e personalizzarlo con plugin per ottenere quello che vuoi. È un CMS completo che ti aiuta a creare qualsiasi tipo di sito web. -On the other hand, Castopod is meant to address the podcasters needs -specifically, focusing on podcasting, and nothing else. You don't need any -plugin to get you started on your podcasting journey. +D'altra parte, Castopod è stato creato per soddisfare specificamente le esigenze dei podcaster, concentrandosi sul podcasting e basta. Non hai bisogno di nessun plugin per cominciare il tuo percorso nel mondo dei podcast. -This allows optimizing the processes specific to podcasting: ranging from the -creation of your podcasts and the publication of new episodes all the way to -broadcasting, marketing and analytics. +Ciò consente di ottimizzare i processi specifici del podcasting: dalla creazione del tuo podcast alla pubblicazione di nuovi episodi, fino alla diffusione, al marketing ed alle analisi. -Finally, depending on your needs, Wordpress and Castopod can even live side by -side as they share the same requirements! +Infine, a seconda delle tue esigenze, Wordpress e Castopod possono perfettamente convivere in quanto condividono gli stessi requisiti! ### Castopod vs Funkwhale -Funkwhale is a self-hosted, modern free and open-source music server. Just as -Castopod, Funkwhale is on the fediverse, a decentralized social network allowing -interoperability between the two. +Funkwhale è un server musicale auto-ospitato, moderno, gratuito e open source. Come Castopod, Funkwhale fa parte del Fediverso, una rete sociale decentralizzata che permette l'interoperabilità tra i due. -Funkwhale was initially built around music. And later on, as the project -evolved, the ability to host podcasts was introduced. +Funkwhale è stato inizialmente costruito intorno alla musica. E successivamente, con l'evoluzione del progetto, è stata introdotta la possibilità di ospitare podcast. -Unlike Funkwhale, Castopod has been designed and built around podcasting -exclusively. This allows easier implementation for features related to the -podcasting ecosystem, such as the podcasting 2.0 features (transcripts, -chapters, locations, persons, …). +A differenza di Funkwhale, Castopod è stato progettato e costruito esclusivamente intorno al podcasting. Ciò consente un'implementazione più facile delle funzionalità legate all'ecosistema del podcasting, come le funzionalità del podcasting 2.0 (trascrizioni, capitoli, posizioni, persone, ...). -So, you should probably use Funkwhale if you want to host your music, and use -Castopod if you want to host your podcasts. +Quindi, è probabile che tu utilizzi Funkwhale se desideri ospitare la tua musica e utilizzi Castopod se desideri ospitare i tuoi podcast. -### Castopod vs other podcast hosts +### Castopod vs altri servizi di hosting dei podcast -There are many solutions for you to host your podcasts, some of which are really -great and [a lot of them](https://podcastindex.org/apps) are jumping into the -Podcasting 2.0 wagon just like Castopod! +Ci sono molte soluzioni per ospitare i tuoi podcast, alcune delle quali sono davvero ottime e [molte di loro](https://podcastindex.org/apps) stanno aderendo alla fazione del Podcasting 2.0 proprio come Castopod! -Each of these solutions differ from one another, you may compare with the -[list of features](#features). +Ogni soluzione ha le sue peculiarità, puoi confrontarle con l'elenco delle caratteristiche. -That being said, there are two main differences with other podcasting solutions: +Detto questo, ci sono due differenze principali rispetto alle altre soluzioni per podcasting: -- Castopod can be self-hosted and is the only solution that allows you to keep - full control over what you produce. Also, as it is open-source, you can even - customize it as you wish. +- Castopod può essere auto-ospitato ed è l'unica soluzione che ti consente di mantenere il controllo completo su ciò che produci. D'altra parte, essendo open-source, hai il potere di modificarlo come desideri. -- Castopod is the only solution that currently integrates both a decentralized - social network with ActivityPub as well as many of the podcasting 2.0 - features, hoping to bridge the gap between the two. +- Castopod è l'unica soluzione che integra sia una rete sociale decentralizzata con ActivityPub che le funzionalità del "Podcasting 2.0", riducendo la distanza tra i due. -## Contributing +## Contribuire -Love Castopod and would like to help? Take a look at the following documentation -to get you started. +Ti piace Castopod e vorresti aiutare? Dai un'occhiata alla seguente documentazione per iniziare. -### Code of conduct +### Codice di condotta -Castopod has adopted a Code of Conduct that we expect project participants to -adhere to. Please read the -[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md) -so that you can understand what actions will and will not be tolerated. +Castopod ha adottato un codice di condotta a cui si aspetta che i partecipanti del progetto si attengano. Leggi il [CODE_OF_CONDUCT](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md) per capire quali azioni saranno e non saranno tollerate. -### Contributing guide +### Guida alla contribuzione -Read our [contributing guide](./contributing/guidelines.md) to learn about our -development process, how to propose bugfixes and improvements, and how to build -and test your changes to Castopod. +Leggi la nostra [guida alla contribuzione](./contributing/guidelines.md) per conoscere il nostro processo di sviluppo, come proporre correzioni di bug e miglioramenti, e come costruire e testare le tue modifiche a Castopod. -## Contributors ✨ +## Sostenitori ✨ -Thanks goes to these wonderful people -([emoji key](https://allcontributors.org/docs/en/emoji-key)): +Un ringraziamento a queste persone meravigliose ([chiave dei emoji](https://allcontributors.org/docs/en/emoji-key)): @@ -177,67 +126,15 @@ Thanks goes to these wonderful people Yassine Doghri
Yassine Doghri

💻 🐛 📖 👀 🚧 🖋 🎨 ️️️️♿️ 🌍 💬 🧑‍🏫 🚇 🤔 📆 📝 Benjamin Bellamy
Benjamin Bellamy

💻 🐛 👀 🖋 🌍 💬 🚇 🤔 📝 📆 📢 Ola Hneini
Ola Hneini

💻 👀 📖 🚧 💬 🤔 - Romain de Laage
Romain de Laage

💻 🚇 📖 🌍 🤔 - Lyonel Bernard
Lyonel Bernard

🐛 💬 🔊 🤔 - Christopher Lagonick-Weitzel
Christopher Lagonick-Weitzel

🐛 💬 🔊 🤔 - Ernesto Acosta
Ernesto Acosta

🐛 🔊 🌍 💬 🤔 + Adriano
Adriano

💻 🤔 + Emanuele Carotenuto
Emanuele Carotenuto

💻 + Roberto Morgana
Roberto Morgana

💻 + Metioche
Metioche

💻 - Bastien Luneteau
Bastien Luneteau

💻 🐛 - Cécile Ricordeau
Cécile Ricordeau

🎨 - Patryk Miś
Patryk Miś

🌍 - Marcin Lewandowski
Marcin Lewandowski

🐛 🤔 - Sebastian Janik
Sebastian Janik

💻 - Patryk Karczmarczyk
Patryk Karczmarczyk

💻 - denis d
denis d

🐛 🤔 - - - Douglas Kastle
Douglas Kastle

🐛 🤔 - cExplorer
cExplorer

🐛 🌍 - ImaCrea
ImaCrea

🐛 🤔 - Jonas S
Jonas S

💻 - LEFEBVRE Yann
LEFEBVRE Yann

🐛 - Sebastian Späth
Sebastian Späth

🐛 🤔 - rocky III
rocky III

🐛 - - - Hermann Josef Eckl
Hermann Josef Eckl

🐛 - Delhaye Cyrille
Delhaye Cyrille

🐛 🤔 - João Leandro
João Leandro

🌍 🤔 - Angelos Chouvardas
Angelos Chouvardas

🌍 - Eivind
Eivind

🌍 - Ewen
Ewen

🌍 🤔 - forght
forght

🌍 - - - glottis0q
glottis0q

🌍 - ButterflyOfFire
ButterflyOfFire

🌍 - Lucian I. Last
Lucian I. Last

🌍 - LuuzViir
LuuzViir

🌍 - CTHTC
CTHTC

🌍 - Russian Retro
Russian Retro

🌍 - Marek L'ach
Marek L'ach

🌍 - - - GunChleoc
GunChleoc

🌍 - GabiSnow
GabiSnow

🌍 - bendaha
bendaha

🌍 - Samuel Roland
Samuel Roland

🌍 - Dimitri Regnier
Dimitri Regnier

🤔 - irithys
irithys

🌍 - Sergi
Sergi

🌍 - - - ghose (XoseM)
ghose (XoseM)

🌍 - Andreas Olsson
Andreas Olsson

🌍 - leonfrom
leonfrom

🌍 - agentcobra
agentcobra

🌍 - Alessandro
Alessandro

🌍 - liimee
liimee

🌍 - Ahmed Sabouni
Ahmed Sabouni

🌍 - - - KrzysztofDomanczyk
KrzysztofDomanczyk

💻 + pizzapieball
pizzapieball

💻 + Raiwa
Raiwa

💻 + Krzysztof Domanczyk
Krzysztof Domanczyk

💻 @@ -247,43 +144,36 @@ Thanks goes to these wonderful people -This project follows the -[all-contributors](https://github.com/all-contributors/all-contributors) -specification. Contributions of any kind welcome! +Questo progetto segue le specifiche di [all-contributors](https://github.com/all-contributors/all-contributors). Contributi di qualsiasi tipo sono benvenuti! -## Contact +## Contattaci -You may reach us for help or ask any question you have on: +Puoi contattarci per ottenere aiuto o fare qualsiasi domanda su: -- [Discord](https://castopod.org/discord) (for direct interaction with - developers and the community) -- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for - feature requests & bug reports) +- [Discord](https://castopod.org/discord) (per chattare in tempo reale con gli sviluppatori e la community) +- [Tracciamento dei problemi](https://code.castopod.org/adaures/castopod/-/issues) (per ogni richiesta di nuova funzionalità o segnalazione di bug) -Alternatively, you can follow us on social media platforms to get news about -Castopod: +In alternativa, puoi seguirci sui social media per rimanere aggiornato sulle novità di Castopod: -- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance) +- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon Instance) - [Twitter](https://twitter.com/castopod) - [LinkedIn](https://linkedin.com/company/castopod) - [Facebook](https://www.facebook.com/castopod) -## Sponsors +## Sostenitori -The ongoing development of Castopod is made possible with the support of its -backers. If you'd like to help, please consider -[sponsoring Castopod's development](https://opencollective.com/castopod/contribute). +Lo sviluppo continuativo di Castopod è reso possibile grazie al supporto dei suoi sostenitori. Se vuoi aiutare, considera di [sostenere lo sviluppo di Castopod](https://opencollective.com/castopod/contribute).
- Ad Aures Logo - NLnet Logo + Logo di Ad Aures + Logo di NLnet
-## License +## Licenza [GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/) -Copyright © 2020-present, [Ad Aures](https://adaures.com/). +Diritti d'autore © 2020-presente, [Ad Aures](https://adaures.com/). https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release https://img.shields.io/github/license/ad-aures/castopod?color=blue https://img.shields.io/badge/contributions-welcome-brightgreen.svg @@ -296,4 +186,4 @@ https://img.shields.io/github/stars/ad-aures/castopod?style=social [semantic-release]: https://github.com/semantic-release/semantic-release [discord]: https://castopod.org/discord [stars]: https://github.com/ad-aures/castopod/stargazers -[crowdin]: https://translate.castopod.org/project/castopod +[crowdin]: https://translate.castopod.org/project/castopod \ No newline at end of file diff --git a/docs/src/nl/contributing/_category_.json b/docs/src/nl/contributing/_category_.json index e12f1ce5..9505a71e 100644 --- a/docs/src/nl/contributing/_category_.json +++ b/docs/src/nl/contributing/_category_.json @@ -1,4 +1,4 @@ { - "label": "Contributing", + "label": "Bijdragen", "position": 3 -} +} \ No newline at end of file diff --git a/docs/src/nl/contributing/guidelines.md b/docs/src/nl/contributing/guidelines.md index 1a53c89e..2ecc4fdb 100644 --- a/docs/src/nl/contributing/guidelines.md +++ b/docs/src/nl/contributing/guidelines.md @@ -1,154 +1,147 @@ --- -title: Guidelines +title: Richtlijnen --- -# Contributing to Castopod +# Bijdragen aan Castopod -Love Castopod and want to help? Thanks so much, there's something to do for -everybody! +Hou je van Castopod en wil je helpen? Bedankt, er is voor iedereen iets te doen! -Please take a moment to review this document in order to make the contribution -process easy and effective for everyone involved. +Neem even de tijd om dit document door te nemen om het bijdrageproces makkelijk en effectief te maken voor alle betrokkenen. -Following these guidelines helps to communicate that you respect the time of the -developers managing and developing this open source project. In return, they -should reciprocate that respect in addressing your issue or assessing patches -and features. +Het volgen van deze richtlijnen laat zien dat je respect hebt voor de tijd van de ontwikkelaars die dit open source project beheren en ontwikkelen. Zij zouden dat respect moeten beantwoorden door zich bezig te houden met jouw probleem of het beoordelen van patches en functies. -::: info Note +::: info Opmerking -**Any** contribution made on a repository other than -[the original repository](https://code.castopod.org/adaures/castopod) will not -be accepted. +**Elke** bijdrage op een repository anders dan +[de oorspronkelijke repository](https://code.castopod.org/adaures/castopod) zal niet +geaccepteerd worden. ::: -## Using the issue tracker +## Gebruik van de issue tracker -The [issue tracker](https://code.castopod.org/adaures/castopod/-/issues) is the -preferred channel for [bug reports](#bug-reports), -[features requests](#feature-requests) and -[submitting pull requests](#pull-requests). +Het [issue tracker](https://code.castopod.org/adaures/castopod/-/issues) is het +voorkeurskanaal voor [bugmeldingen](#bugmeldingen), +[verzoek om functies](#functieverzoeken) en +[het indienen van pull-aanvragen](#pull-aanvragen). -## ⚠️ Security issues and vulnerabilities +## ⚠️ Veiligheidsproblemen en kwetsbaarheden -If you encounter any security issue or vulnerability in the Castopod source, -please contact us directly by email at +Als je een veiligheidsprobleem of kwetsbaarheid tegenkomt in de Castopod broncode, +neem dan direct contact met ons op via e-mail op [security@castopod.org](mailto:security@castopod.org) -## Bug reports +## Bugmeldingen -A bug is a _demonstrable problem_ that is caused by the code in the repository. -Good bug reports are extremely helpful - thank you! +Een bug is een _aantoonbaar probleem_ dat wordt veroorzaakt door de code in de repository. +Goede bugmeldingen zijn erg nuttig - bedankt! -Guidelines for bug reports: +Richtlijnen voor bugmeldingen: -1. **Use the issue search** — check if the issue has already been - reported. +1. **Gebruik de probleemzoeker** — controleer of het probleem al + gemeld is. -2. **Check if the issue has been fixed** — try to reproduce it using the - latest `main` branch in the repository. +2. **Controleer of het probleem is opgelost** — probeer het te reproduceren met behulp van de + laatste versie van de `main` branch in de repository. -3. **Isolate the problem** — ideally create a - [reduced test case](https://css-tricks.com/reduced-test-cases/) and a live - example. +3. **Isoleer het probleem** — creëer idealiter een + [gereduceerd testgeval](https://css-tricks.com/reduced-test-cases/) en een live + voorbeeld. -A good bug report shouldn't leave others needing to chase you up for more -information. Please try to be as detailed as possible in your report. What is -your environment? What steps will reproduce the issue? What browser(s) and OS -experience the problem? What would you expect to be the outcome? All these -details will help people to fix any potential bugs. +Een goede bugmelding zou anderen niet moeten dwingen om je achterna te gaan voor meer +informatie. Probeer alsjeblieft zo gedetailleerd mogelijk te zijn in jouw rapport. Wat is +jouw omgeving? Welke stappen zullen het probleem reproduceren? Welke browser(s) en besturingssytemen +ondervinden het probleem? Wat zou je verwachten als resultaat? Al deze +details zullen mensen helpen om eventuele fouten op te lossen. -> [Issue templates](https://docs.gitlab.com/ee/user/project/description_templates.html#using-the-templates) -> have been created for this project. You may use them to help you follow those -> guidelines. +> [Issue sjablonen](https://docs.gitlab.com/ee/user/project/description_templates.html#using-the-templates) +> zijn gemaakt voor dit project. Je kunt ze gebruiken om je te helpen deze richtlijnen te volgen. -## Feature requests +## Functieverzoeken -Feature requests are welcome. But take a moment to find out whether your idea -fits with the scope and aims of the project. It's up to _you_ to make a strong -case to convince the project's developers of the merits of this feature. Please -provide as much detail and context as possible. +Functieverzoeken zijn welkom. Maar neem even de tijd om te controleren of jouw idee +past binnen de reikwijdte en doelstellingen van het project. Het is aan _jou_ om een sterke +zaak te maken om de ontwikkelaars van het project te overtuigen van de waarde van deze functie. Geef alsjeblieft +zoveel mogelijk details en context. -## Pull requests +## Pull-aanvragen -Good pull requests - patches, improvements, new features - are a fantastic help. -They should remain focused in scope and avoid containing unrelated commits. +Goede pull-aanvragen - patches, verbeteringen, nieuwe functies - zijn fantastisch. Ze moeten gericht blijven en geen ongerelateerde commits bevatten. -**Please ask first** before embarking on any significant pull request (e.g. -implementing features, refactoring code, porting to a different language), -otherwise you risk spending a lot of time working on something that the -project's developers might not want to merge into the project. +**Vraag alsjeblieft eerst om toestemming** voordat je aan een significante pull-aanvraag begint (bijvoorbeeld +het implementeren van functies, code refactoring, porteren naar een andere taal), +anders loop je het risico veel tijd te besteden aan iets dat de +ontwikkelaars van het project mogelijk niet willen samenvoegen. -Please adhere to the coding conventions used throughout a project (indentation, -accurate comments, etc.) and any other requirements (such as test coverage). +Houd je alsjeblieft aan de coderingsconventies die door het project worden gebruikt (inspringing, +nauwkeurige opmerkingen, etc.) en aan andere vereisten (zoals testdekking). -Adhering to the following process is the best way to get your work included in -the project: +Het volgen van het volgende proces is de beste manier om ervoor te zorgen dat jouw werk wordt opgenomen. +in het project: -1. [Fork](https://docs.gitlab.com/ee/gitlab-basics/fork-project.html) the - project, clone your fork, and configure the remotes: +1. [Fork](https://docs.gitlab.com/ee/gitlab-basics/fork-project.html) het + project, kloon je fork en configureer de remotes: ```bash -# Clone your fork of the repo into the current directory -git clone https://code.castopod.org//castopod.git +# Kloon je repositoryfork naar de huidige map +git clone https://code.castopod.org//castopod.git -# Navigate to the newly cloned directory +# Navigeer naar de nieuw gekloonde map cd castopod -# Assign the original repo to a remote called "upstream" +# Koppel de originele repository aan een remote genaamd "upstream" git remote add upstream https://code.castopod.org/adaures/castopod.git ``` -2. If you cloned a while ago, get the latest changes from upstream: +2. Als je al een tijdje geleden hebt gekloond, haal je de nieuwste wijzigingen op van upstream: ```bash git checkout main git pull upstream main ``` -3. Create a new topic branch (off the `main` branch) to contain your feature, - change, or fix: +3. Maak een nieuwe onderwerp-branch (van de `main` branch) om jouw functie, + wijziging of oplossing in op te nemen: ```bash -git checkout -b +git checkout -b ``` -4. Commit your changes in logical chunks. Please adhere to these - [git commit message guidelines](https://conventionalcommits.org/) or your - code is unlikely be merged into the main project. Use Git's - [interactive rebase](https://help.github.com/articles/about-git-rebase/) - feature to tidy up your commits before making them public. +4. Commit jouw wijzigingen in logische delen. Houd je alsjeblieft aan deze + [richtlijnen voor git commits](https://conventionalcommits.org/) anders zal jouw + code waarschijnlijk niet worden samengevoegd met het hoofdproject. Gebruik Git's + [interactieve rebase](https://help.github.com/articles/about-git-rebase/) + functie om jouw commits op te schonen voordat je ze openbaar maakt. -5. Locally merge (or rebase) the upstream dev branch into your topic branch: +5. Combineer lokaal (met behulp van merge of rebase) de upstream-ontwikkelingsbranch met jouw onderwerp-branch: ```bash git pull [--rebase] upstream main ``` -6. Push your topic branch up to your fork: +6. Push jouw onderwerp-branch naar jouw fork: ```bash -git push origin +git push origin ``` -7. [Open a Pull Request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html#new-merge-request-from-a-fork) - with a clear title and description. +7. [Open een pull-aanvraag](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html#new-merge-request-from-a-fork) + met een duidelijke titel en beschrijving. -**IMPORTANT**: By submitting a patch, you agree to allow the project owners to -license your work under the terms of the -[GNU AGPLv3](https://code.castopod.org/adaures/castopod/-/blob/main/LICENSE). +**BELANGRIJK**: Door een patch in te dienen, stem je ermee in dat de eigenaren van het project +jouw werk onder de voorwaarden van de +[GNU AGPLv3](https://code.castopod.org/adaures/castopod/-/blob/main/LICENSE) kunnen licenseren. -## Collaborating guidelines +## Richtlijnen voor samenwerking -There are few basic rules to ensure high quality of the project: +Er zijn een paar basisregels om de kwaliteit van het project te waarborgen: -- Before merging, a PR requires at least two approvals from the collaborators - unless it's an architectural change, a large feature, etc. If it is, then at - least 50% of the core team have to agree to merge it, with every team member - having a full veto right. (i.e. every single one can block any PR) -- A PR should remain open for at least two days before merging (does not apply - for trivial contributions like fixing a typo). This way everyone has enough - time to look into it. +- Voor het samenvoegen van een PR zijn ten minste twee goedkeuringen van de samenwerkers + vereist, tenzij het om een architecturale wijziging, een grote functie, etc. gaat. In dat geval moet + minstens 50% van het kernteam akkoord gaan met het samenvoegen, waarbij elk teamlid + een volledig vetorecht heeft. (d.w.z. dat iedereen elke PR kan blokkeren) +- Een PR moet minstens twee dagen open blijven voordat het wordt samengevoegd (geldt niet + voor triviale bijdragen zoals het corrigeren van een typefout). Op deze manier heeft iedereen voldoende + tijd om ernaar te kijken. -You are always welcome to discuss and propose improvements to this guideline. +Je bent altijd welkom om deze richtlijn te bespreken en verbeteringen voor te stellen. \ No newline at end of file diff --git a/docs/src/nl/contributing/setup-development.md b/docs/src/nl/contributing/setup-development.md index 7e42892a..77ba77af 100644 --- a/docs/src/nl/contributing/setup-development.md +++ b/docs/src/nl/contributing/setup-development.md @@ -1,36 +1,31 @@ --- -title: Development setup +title: Ontwikkelomgeving instellen sidebarDepth: 3 --- -# Setup your development environment +# Stel je ontwikkelomgeving in -## Introduction +## Inleiding -Castopod is a web app based on the `php` framework -[CodeIgniter 4](https://codeigniter.com). +Castopod is een web-app gebaseerd op het `php` framework [CodeIgniter 4](https://codeigniter.com). -We use [Docker](https://www.docker.com/) quickly setup a dev environment. A -`docker-compose.yml` and `Dockerfile` are included in the project's root folder -to help you kickstart your contribution. +We gebruiken [Docker](https://www.docker.com/) om snel een ontwikkelomgeving in te stellen. Een `docker-compose.yml` en `Dockerfile` zijn opgenomen in de hoofdmap van het project om je op weg te helpen met je bijdrage. -> You don't need any prior knowledge of Docker to follow the next steps. -> However, if you wish to use your own environment, feel free to do so! +> Je hebt geen voorkennis van Docker nodig om de volgende stappen te volgen. Als je echter je eigen omgeving wilt gebruiken, voel je vrij om dat te doen! -## Setup instructions +## Instructies voor installatie -### 1. Pre-requisites +### 1. Benodigdheden -0. Install [docker](https://docs.docker.com/get-docker). +0. Installeer [docker](https://docs.docker.com/get-docker). -1. Clone Castopod project by running: +1. Clone het Castopod project door het volgende commando uit te voeren: ```bash git clone https://code.castopod.org/adaures/castopod.git ``` -2. Create a `.env` file with the minimum required config to connect the app to - the database and use redis as a cache handler: +2. Maak een `.env`-bestand aan met de minimale vereiste configuratie om de app te verbinden met de database en redis te gebruiken als cache handler: ```ini CI_ENVIRONMENT="development" @@ -62,362 +57,86 @@ to help you kickstart your contribution. #cache.handler="file" ``` - > _NB._ You can tweak your environment by setting more environment variables - > in your custom `.env` file. See the `env` for examples or the - > [CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html) - > for more info. + > _NB._ Je kunt je omgeving aanpassen door meer omgevingsvariabelen in je aangepaste `.env`-bestand in te stellen. Zie `env` voor voorbeelden of de [CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html) voor meer informatie. -3. (for docker desktop) Add the repository you've cloned to docker desktop's - `Settings` > `Resources` > `File Sharing` +3. (voor docker desktop) Voeg de repository die je hebt gekloond toe aan `Settings` > `Resources` > `File Sharing` van Docker desktop. -### 2. (recommended) Develop inside the app Container with VSCode +### 2. (aanbevolen) Ontwikkel binnen de app container met VSCode -If you're working in VSCode, you can take advantage of the `.devcontainer/` -folder. It defines a development environment (dev container) with preinstalled -requirements and VSCode extensions so you don't have to worry about them. All -required services will be loaded automagically! 🪄 +Als je werkt in VSCode, kun je gebruikmaken van de `.devcontainer/` map. Hiermee definieer je een ontwikkelomgeving (dev container) met vooraf geïnstalleerde vereisten en VSCode-extensies, zodat je je daar geen zorgen over hoeft te maken. Alle vereiste services worden automatisch geladen! 🪄 -1. Install the VSCode extension - [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) -2. `Ctrl/Cmd + Shift + P` > `Open in container` +1. Installeer de VSCode-extensie [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers). +2. `Ctrl/Cmd + Shift + P` > `Openen in container` - > The VSCode window will reload inside the dev container. Expect several - > minutes during first load as it is building all necessary services. + > Het VSCode-venster wordt opnieuw geladen in de development container. Verwacht enkele minuten tijdens de eerste keer laden, omdat alle benodigde services worden opgebouwd. - **Note**: The dev container will start by running Castopod's php server. - During development, you will have to start [Vite](https://vitejs.dev)'s dev - server for compiling the typescript code and styles: + **Let op**: De ontwikkelcontainer wordt gestart door de php-server van Castopod uit te voeren. Tijdens de ontwikkeling moet je de [Vite](https://vitejs.dev) dev-server starten voor het compileren van de TypeScript-code en stijlen: ```bash - # run Vite dev server + # voer Vite dev server uit npm run dev ``` - If there is any issue with the php server not running, you can restart them - using the following commands: + Als er problemen zijn met de php-server die niet wordt uitgevoerd, kun je deze opnieuw starten met de volgende commando's: ```bash - # run Castopod server + # voer Castopod server uit php spark serve - 0.0.0.0 ``` -3. You're all set! 🎉 +3. Je bent klaar! 🎉 - You're now **inside the dev container**, you may use the VSCode console - (`Terminal` > `New Terminal`) to run any command: + Je bent nu **binnen de dev container**, je kunt de VSCode-console (`Terminal` > `Nieuwe Terminal`) gebruiken om elk commando uit te voeren: ```bash - # PHP is installed + # PHP is geïnstalleerd php -v - # Composer is installed + # Composer is geïnstalleerd composer -V - # npm is installed + # npm is geïnstalleerd npm -v - # git is installed + # git is geïnstalleerd git version ``` -For more info, see -[VSCode Remote Containers](https://code.visualstudio.com/docs/remote/containers) +Voor meer informatie, zie [VSCode Remote Containers](https://code.visualstudio.com/docs/remote/containers). -### 3. Start hacking +### 3. Begin met programmeren -You're all set! Start working your magic by updating the project's files! Help -yourself to the -[CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html) for -more insights. +Je bent klaar! Begin met het bijwerken van de bestanden van het project! Raadpleeg de [CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html) voor meer inzicht. -To see your changes, go to: +Om je wijzigingen te zien, ga naar: -- `http://localhost:8080/` for the Castopod app -- `http://localhost:8888/` for the phpmyadmin interface: +- `http://localhost:8080/` voor de Castopod-app +- `http://localhost:8888/` voor de phpmyadmin-interface: - - username: **castopod** - - password: **castopod** + - gebruikersnaam: **castopod** + - wachtwoord: **castopod** -### 2-alt. Develop outside the app container +### 2-alt. Ontwikkelen buiten de app-container -You do not wish to use the VSCode devcontainer? No problem! +Wil je de VSCode-devcontainer niet gebruiken? Geen probleem! -1. Start docker containers manually: +1. Start de Docker-containers handmatig: - Go to project's root folder and run: + Ga naar de hoofdmap van het project en voer het volgende commando uit: ```bash - # starts all services declared in docker-compose.yml file - # -d option starts the containers in the background + # start alle services die zijn gedeclareerd in het docker-compose.yml-bestand + # de optie -d start de containers op de achtergrond docker-compose up -d - # See all running processes (you should see 3 processes running) + # Bekijk alle actieve processen (je zou 3 processen moeten zien uitgevoerd worden) docker-compose ps - # Alternatively, you can check all docker processes + # Als alternatief kun je alle Docker-processen bekijken docker ps -a - ``` - > The `docker-compose up -d` command will boot 4 containers in the - > background: + > Het commando `docker-compose up -d` start 4 containers op de achtergrond: > - > - `castopod_app`: a php based container with Castopod requirements - > installed - > - `castopod_redis`: a [redis](https://redis.io/) database to handle queries - > and pages caching - > - `castopod_mariadb`: a [mariadb](https://mariadb.org/) server for - > persistent data - > - `castopod_phpmyadmin`: a phpmyadmin server to visualize the mariadb - > database. - -2. Run any command inside the containers by prefixing them with - `docker-compose run --rm app`: - - ```bash - # use PHP - docker-compose run --rm app php -v - - # use Composer - docker-compose run --rm app composer -V - - # use npm - docker-compose run --rm app npm -v - - # use git - docker-compose run --rm app git version - ``` - ---- - -## Going Further - -### Install Castopod's dependencies - -1. Install php dependencies with [Composer](https://getcomposer.org/) - - ```bash - composer install - ``` - - ::: info Note - - The php dependencies aren't included in the repository. Composer will check - the `composer.json` and `composer.lock` files to download the packages with - the right versions. The dependencies will live under the `vendor/` folder. - For more info, check out the - [Composer documentation](https://getcomposer.org/doc/). - - ::: - -2. Install javascript dependencies with [npm](https://www.npmjs.com/) - - ```bash - npm install - ``` - - ::: info Note - - The javascript dependencies aren't included in the repository. Npm will check - the `package.json` and `package.lock` files to download the packages with the - right versions. The dependencies will live under the `node_module` folder. - For more info, check out the [NPM documentation](https://docs.npmjs.com/). - - ::: - -3. Generate static assets: - - ```bash - # build all static assets at once - npm run build:static - - # build specific assets - npm run build:icons - npm run build:svg - ``` - - ::: info Note - - The static assets generated live under the `public/assets` folder, it - includes javascript, styles, images, fonts, icons and svg files. - - ::: - -### Initialize and populate database - -::: tip Tip - -You may skip this section if you go through the install wizard (go to -`/cp-install`). - -::: - -1. Build the database with the migrate command: - - ```bash - # loads the database schema during first migration - php spark migrate -all - ``` - - You may need to undo the migration (rollback): - - ```bash - # rolls back database schema (deletes all tables and their content) - php spark migrate:rollback - ``` - -2. Populate the database with the required data: - - ```bash - # Populates all required data - php spark db:seed AppSeeder - ``` - - You may choose to add data separately: - - ```bash - # Populates all categories - php spark db:seed CategorySeeder - - # Populates all Languages - php spark db:seed LanguageSeeder - - # Populates all podcasts platforms - php spark db:seed PlatformSeeder - - # Populates all Authentication data (roles definition…) - php spark db:seed AuthSeeder - ``` - -3. (optionnal) Populate the database with test data: - - - Populate test data (login: admin / password: AGUehL3P) - - ```bash - php spark db:seed TestSeeder - ``` - - - Populate with fake podcast analytics: - - ```bash - php spark db:seed FakePodcastsAnalyticsSeeder - ``` - - - Populate with fake website analytics: - - ```bash - php spark db:seed FakeWebsiteAnalyticsSeeder - ``` - - TestSeeder will add an active superadmin user with the following credentials: - - - username: **admin** - - password: **AGUehL3P** - -### Useful docker / docker-compose commands - -- Monitor the app container: - -```bash -docker-compose logs --tail 50 --follow --timestamps app -``` - -- Interact with redis server using included redis-cli command: - -```bash -docker exec -it castopod_redis redis-cli -``` - -- Monitor the redis container: - -```bash -docker-compose logs --tail 50 --follow --timestamps redis -``` - -- Monitor the mariadb container: - -```bash -docker-compose logs --tail 50 --follow --timestamps mariadb -``` - -- Monitor the phpmyadmin container: - -```bash -docker-compose logs --tail 50 --follow --timestamps phpmyadmin -``` - -- Restart docker containers: - -```bash -docker-compose restart -``` - -- Destroy all containers, opposite of `up` command: - -```bash -docker-compose down -``` - -- Rebuild app container: - -```bash -docker-compose build app -``` - -Check [docker](https://docs.docker.com/engine/reference/commandline/docker/) and -[docker-compose](https://docs.docker.com/compose/reference/) documentations for -more insights. - -## Known issues - -### Allocation failed - JavaScript heap out of memory - -This happens when running `npm install`. - -👉 By default, docker might not have access to enough RAM. Allocate more memory -and run `npm install` again. - -### (Linux) Files created inside container are attributed to root locally - -You may use Linux user namespaces to fix this on your machine: - -::: info Note - -Replace "username" with your local username - -::: - -1. Go to `/etc/docker/daemon.json` and add: - - ```json - { - "userns-remap": "username" - } - ``` - -2. Configure the subordinate uid/guid: - - ```bash - # in /etc/subuid - username:1000:1 - username:100000:65536 - ``` - - ```bash - # in /etc/subgid - username:1000:1 - username:100000:65536 - ``` - -3. Restart docker: - - ```bash - sudo systemctl restart docker - ``` - -4. That's it! Now, the root user in the container will be mapped to the user on - your local machine, no more permission issues! 🎉 - -You can check -[this great article](https://www.jujens.eu/posts/en/2017/Jul/02/docker-userns-remap/) -to know more about how it works. + > - `castopod_app`: een op php gebaseerde container met Castopod-vereisten geïnstalleerd + > - `castopod_redis`: een [redis]( \ No newline at end of file diff --git a/docs/src/nl/getting-started/_category_.json b/docs/src/nl/getting-started/_category_.json index 877a378f..0be2eb34 100644 --- a/docs/src/nl/getting-started/_category_.json +++ b/docs/src/nl/getting-started/_category_.json @@ -1,4 +1,4 @@ { - "label": "Getting Started", + "label": "Aan de slag", "position": 2 -} +} \ No newline at end of file diff --git a/docs/src/nl/getting-started/auth.md b/docs/src/nl/getting-started/auth.md index ebeccf1e..98ca795a 100644 --- a/docs/src/nl/getting-started/auth.md +++ b/docs/src/nl/getting-started/auth.md @@ -1,88 +1,88 @@ --- -title: Authentication & Authorization +title: Authenticatie en Autorisatie sidebarDepth: 3 --- -# Authenticatie & Autorisatie +# Authenticatie en Autorisatie -Castopod gebruikt voor de authenticatie en autorisatie `codeigniter/schild` met -een aantal aangepaste regels. Rollen en permissies zijn gedefinieerd op twee -niveaus: +Castopod beheert authenticatie en autorisatie met behulp van +`codeigniter/shield` in combinatie met aangepaste regels. Rollen en +machtigingen zijn gedefinieerd op twee niveaus: -1. [globaal: serverbreed](#1-instance-wide-roles-and-permissions) -2. [per podcast](#2-per-podcast-roles-and-permissions) +1. [Instancebrede rollen en machtigingen](#1-instance-wide-roles-and-permissions) +2. [Per podcast](#2-per-podcast-roles-and-permissions) -## 1. Globale rollen en rechten +## 1. Instancebrede rollen en machtigingen -### Globale rollen +### Rollen in de instance -| rol | omschrijving | rechten | -| ----------- | ------------------------------------------ | ------------------------------------------------------------------------------------------ | -| Super admin | Heeft de volledige controle over Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks | -| Manager | Beheert de inhoud van Castopod. | podcasts.create, podcasts.import, persons.manage, pages.manage | -| Podcaster | Algemene gebruikers van Castopod. | admin.access | +| rol | beschrijving | machtigingen | +| ------------ | ----------------------------------- | ------------------------------------------------------------------------------------------ | +| Super admin | Heeft volledige controle over Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks | +| Manager | Beheert de inhoud van Castopod. | podcasts.create, podcasts.import, persons.manage, pages.manage | +| Podcaster | Gewone gebruikers van Castopod. | admin.access | -### Globale rechten +### Machtigingen in de instance -| recht | omschrijving | +| machtiging | beschrijving | | ----------------------- | -------------------------------------------------------------------- | -| admin.access | Kan toegang krijgen tot de beheeromgeving van Castopod. | -| admin.settings | Kan toegang krijgen tot de instellingen van Castopod. | -| users.manage | Kan Castopod-gebruikers beheren. | +| admin.access | Kan toegang krijgen tot het Castopod-beheergebied. | +| admin.settings | Kan Castopod-instellingen bekijken en wijzigen. | +| users.manage | Kan gebruikers beheren. | | persons.manage | Kan personen beheren. | | pages.manage | Kan pagina's beheren. | | podcasts.view | Kan alle podcasts bekijken. | -| podcasts.create | Kan nieuwe podcast aanmaken. | +| podcasts.create | Kan nieuwe podcasts aanmaken. | | podcasts.import | Kan podcasts importeren. | -| fediverse.manage-blocks | Kan fediverse actors/domains blokkeren voor interactie met Castopod. | +| fediverse.manage-blocks | Kan fediverse actoren/domeinen blokkeren zodat ze niet kunnen communiceren met Castopod. | -## 2. Per podcast rollen en permissies +## 2. Rollen en machtigingen per podcast -### Per podcast rollen +### Rollen per podcast -| rol | omschrijving | rechten | -| ------ | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Admin | Heeft de volledige controle over podcast #{id}. | \* | -| Editor | Beheert inhoud en publicaties van podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments | -| Author | Beheert de inhoud van podcast #{id} maar kan deze niet publiceren. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips | -| Guest | Algemene bijdrager van podcast #{id}. | view, episodes.view | +| rol | beschrijving | machtigingen | +| ------- | ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Admin | Heeft volledige controle over podcast #{id}. | \* | +| Editor | Beheert de inhoud en publicaties van podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments | +| Auteur | Beheert de inhoud van podcast #{id}, maar kan deze niet publiceren. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips | +| Gast | Algemene bijdrager van podcast #{id}. | view, episodes.view | -### Per aflevering rollen +### Machtigingen per podcast -| recht | omschrijving | -| ---------------------------- | -------------------------------------------------------------------------------------- | -| view | Kan dashboard en statistieken van podcast #{id} zien. | -| edit | Kan podcast #{id} wijzigen. | -| delete | Kan podcast #{id} verwijderen. | -| manage-import | Kan de geïmporteerde podcast #{id} synchroniseren. | -| manage-persons | Kan personen van podcast #{id} beheren. | -| manage-subscriptions | Kan abonnees van podcast #{id} beheren. | -| manage-contributors | Kan bijdragers van podcast #{id} beheren. | -| manage-platforms | Kan platform links van podcast #{id} instellen of verwijderen. | -| manage-publications | Kan podcast #{id} publiceren. | -| manage-notifications | Kan meldingen voor podcast #{id} bekijken en als gelezen markeren. | -| interact-as | Kan als podcast #{id} handelen om te favorieten, te delen of te reageren op berichten. | -| episodes.view | Kan dashboard en statistieken van podcast #{id} zien. | -| episodes.create | Kan afleveringen voor podcast #{id} aanmaken. | -| episodes.edit | Kan afleveringen van podcast #{id} wijzigen. | -| episodes.delete | Kan afleveringen van podcast #{id} verwijderen. | -| episodes.manage-persons | Kan personen in aflevering van podcast #{id} beheren. | -| episodes.manage-clips | Kan videoclips of soundbites van podcast #{id} beheren. | -| episodes.manage-publications | Kan afleveringen van podcast #{id} publiceren. | -| episodes.manage-comments | Kan reacties op afleveringen van podcast #{id} maken of verwijderen. | +| machtiging | beschrijving | +| ------------------------ | ------------------------------------------------------------------------------------------------- | +| view | Toegang tot het dashboard en de analyse van podcast #{id}. | +| edit | Kan podcast #{id} bewerken. | +| delete | Kan podcast #{id} verwijderen. | +| manage-import | Kan geïmporteerde podcast #{id} synchroniseren. | +| manage-persons | Kan abonnees beheren van podcast #{id}. | +| manage-subscriptions | Kan abonnementen beheren van podcast #{id}. | +| manage-contributors | Kan bijdragers beheren van podcast #{id}. | +| manage-platforms | Kan koppelingen naar podcast #{id} platformen configureren/verwijderen. | +| manage-publications | Kan podcast #{id} publiceren. | +| manage-notifications | Kan meldingen voor podcast #{id} bekijken en markeren als gelezen. | +| interact-as | Kan namens podcast #{id} interacties toevoegen, delen of beantwoorden. | +| episodes.view | Kan dashboard en analyses van podcast #{id} bekijken. | +| episodes.create | Kan afleveringen maken voor podcast #{id}. | +| episodes.edit | Kan podcast #{id} bewerken. | +| episodes.delete | Kan podcast #{id} verwijderen. | +| episodes.manage-persons | Kan abonnees beheren van podcast #{id}. | +| episodes.manage-clips | Kan videoclips of audiofragmenten van podcast #{id} beheren. | +| episodes.manage-publications | Kan podcast #{id} publiceren. | +| episodes.manage-comments | Kan opmerkingen maken/verwijderen voor afleveringen van podcast #{id}. | - + \ No newline at end of file diff --git a/docs/src/nl/getting-started/docker.md b/docs/src/nl/getting-started/docker.md index 75158bd6..2ed1d0ca 100644 --- a/docs/src/nl/getting-started/docker.md +++ b/docs/src/nl/getting-started/docker.md @@ -1,35 +1,28 @@ --- -title: Official Docker images +title: Officiële Docker-afbeeldingen sidebarDepth: 3 --- -# Official Docker images +# Officiële Docker-afbeeldingen -Castopod pushes 3 Docker images to the Docker Hub during its automated build -process: +Tijdens het geautomatiseerde bouwproces maakt Castopod gebruik van 3 Docker-afbeeldingen die naar de Docker-hub worden gestuurd: -- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): an all - in one castopod image using nginx unit -- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): the app bundle - with all of Castopod dependencies -- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an - Nginx configuration for Castopod +- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): een alles-in-één Castopod-afbeelding met behulp van NGINX Unit +- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): de app-bundel met alle afhankelijkheden van Castopod +- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): een NGINX-configuratie voor Castopod -Additionally, Castopod requires a MySQL-compatible database. A Redis database -can be added as a cache handler. +Daarnaast heeft Castopod een MySQL-compatibele database nodig. Een Redis-database kan worden toegevoegd als cachebeheerder. -## Supported tags +## Ondersteunde tags -- `develop` [unstable], latest development branch build -- `beta` [stable], latest beta version build -- `latest` [stable], latest version build -- `1.x.x` [stable], specific version build (since `1.0.0`) +- `latest` [onstabiel], de nieuwste ontwikkelingsversie +- `beta` [stabiel], de nieuwste bètaversie +- `1.x.x` [stabiel], specifieke versie (vanaf `1.0.0`) -## Example usage +## Gebruik voorbeeld -1. Install [docker](https://docs.docker.com/get-docker/) and - [docker-compose](https://docs.docker.com/compose/install/) -2. Create a `docker-compose.yml` file with the following: +1. Installeer [docker](https://docs.docker.com/get-docker/) en [docker-compose](https://docs.docker.com/compose/install/) +2. Maak een `docker-compose.yml`-bestand met de volgende inhoud: ```yml version: "3.7" @@ -87,13 +80,11 @@ can be added as a cache handler. castopod-db: ``` - You have to adapt some variables to your needs (e.g. `CP_BASEURL`, - `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` and `CP_ANALYTICS_SALT`). + Pas enkele variabelen aan naar jouw wensen (bijvoorbeeld `CP_BASEURL`, `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` en `CP_ANALYTICS_SALT`). -3. Setup a reverse proxy for TLS (SSL/HTTPS) +3. Configureer een reverse proxy voor TLS (SSL/HTTPS) - TLS is mandatory for ActivityPub to work. This job can easily be handled by - a reverse proxy, for example with [Caddy](https://caddyserver.com/): + TLS is nodig voor ActivityPub om te werken. Dit kan eenvoudig worden geregeld met een reverse proxy, bijvoorbeeld met [Caddy](https://caddyserver.com/): ``` #castopod @@ -102,57 +93,56 @@ can be added as a cache handler. } ``` -4. Run `docker-compose up -d`, wait for it to initialize and head on to - `https://castopod.example.com/cp-install` to finish setting up Castopod! +4. Voer `docker-compose up -d` uit, wacht tot het geïnitialiseerd is op `https://castopod.example.com/cp-install` om de configuratie van Castopod te voltooien! -5. You're all set, start podcasting! 🎙️🚀 +5. Je bent klaar om te podcasten! 🎙️🚀 -## Environment Variables +## Omgevingsvariabelen -- **castopod/castopod** and **castopod/app** +- **castopod/castopod** en **castopod/app** - | Variable name | Type (`default`) | Default | - | ------------------------------------- | ----------------------- | ---------------- | - | **`CP_BASEURL`** | string | `undefined` | - | **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` | - | **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` | - | **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` | - | **`CP_ANALYTICS_SALT`** | string | `undefined` | - | **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` | - | **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` | - | **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` | - | **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` | - | **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` | - | **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` | - | **`CP_REDIS_HOST`** | ?string | `"localhost"` | - | **`CP_REDIS_PASSWORD`** | ?string | `null` | - | **`CP_REDIS_PORT`** | ?number | `6379` | - | **`CP_REDIS_DATABASE`** | ?number | `0` | - | **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` | - | **`CP_EMAIL_FROM`** | ?string | `undefined` | - | **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` | - | **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` | - | **`CP_EMAIL_SMTP_PORT`** | ?number | `25` | - | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` | - | **`CP_ENABLE_2FA`** | ?boolean | `undefined` | - | **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` | - | **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` | - | **`CP_MEDIA_S3_KEY`** | ?string | `undefined` | - | **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` | - | **`CP_MEDIA_S3_REGION`** | ?string | `undefined` | - | **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` | - | **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` | - | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` | - | **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` | - | **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` | - | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | - | **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` | - | **`CP_TIMEOUT`** | ?number | `900` | + | Variabelenaam | Type (`default`) | Standaardwaarde | + | -------------------------------- | ----------------------- | --------------- | + | **`CP_BASEURL`** | string | `undefined` | + | **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` | + | **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` | + | **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` | + | **`CP_ANALYTICS_SALT`** | string | `undefined` | + | **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` | + | **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE`| + | **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` | + | **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD`| + | **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` | + | **`CP_CACHE_HANDLER`** | [`"file"` of `"redis"`] | `"file"` | + | **`CP_REDIS_HOST`** | ?string | `"localhost"` | + | **`CP_REDIS_PASSWORD`** | ?string | `null` | + | **`CP_REDIS_PORT`** | ?number | `6379` | + | **`CP_REDIS_DATABASE`** | ?number | `0` | + | **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` | + | **`CP_EMAIL_FROM`** | ?string | `undefined` | + | **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` | + | **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` | + | **`CP_EMAIL_SMTP_PORT`** | ?number | `25` | + | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` of `"ssl"`] | `"tls"` | + | **`CP_ENABLE_2FA`** | ?boolean | `undefined` | + | **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` | + | **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` | + | **`CP_MEDIA_S3_KEY`** | ?string | `undefined` | + | **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` | + | **`CP_MEDIA_S3_REGION`** | ?string | `undefined` | + | **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` | + | **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` | + | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` | + | **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` | + | **`CP_DISABLE_HTTPS`** | ?[`0` of `1`] | `undefined` | + | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | + | **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` | + | **`CP_TIMEOUT`** | ?number | `900` | - **castopod/web-server** - | Variable name | Type | Default | - | ---------------------- | --------------------- | ------- | - | **`CP_APP_HOSTNAME`** | ?string | `"app"` | - | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | - | **`CP_TIMEOUT`** | ?number | `900` | + | Variabelenaam | Type | Standaardwaarde | + | ---------------------- | --------------------- | ----------------| + | **`CP_APP_HOSTNAME`** | ?string | `"app"` | + | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | + | **`CP_TIMEOUT`** | ?number | `900` | \ No newline at end of file diff --git a/docs/src/nl/getting-started/install.md b/docs/src/nl/getting-started/install.md index af405daf..3a846817 100644 --- a/docs/src/nl/getting-started/install.md +++ b/docs/src/nl/getting-started/install.md @@ -1,221 +1,118 @@ --- -title: Installation +title: Installatie sidebarDepth: 3 --- -# How to install Castopod? +# Hoe installeer ik Castopod? -Castopod was thought-out to be easy to install. Whether using dedicated or -shared hosting, you can install it on most PHP-MySQL compatible web servers. +Castopod is ontworpen om eenvoudig te installeren te zijn. Of je nu een +dedicated of shared hosting gebruikt, je kunt het installeren op de meeste +web servers die compatibel zijn met PHP-MySQL. -::: tip Note +::: tip Opmerking -We've released official Docker images for Castopod! +We hebben officiële Docker-afbeeldingen voor Castopod uitgebracht! -If you prefer using Docker, you may skip this and go straight to the -[docker documentation](./docker.md) for Castopod. +Als je Docker wilt gebruiken, kun je dit gedeelte overslaan en direct naar de [Docker-documentatie](./docker.md) voor Castopod gaan. ::: -## Requirements +## Vereisten - PHP v8.1 only -- MySQL version 5.7 or higher or MariaDB version 10.2 or higher -- HTTPS support -- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - incoming requests +- MySQL versie 5.7 of hoger of MariaDB versie 10.2 of hoger +- Ondersteuning voor HTTPS +- Een [ntp-gesynchroniseerde klok](https://wiki.debian.org/NTP) om binnenkomende verzoeken van de federatie te valideren ### PHP v8.1 only -PHP version 8.1 is required, with the following extensions installed: +PHP versie 8.1 is vereist, met de volgende geïnstalleerde extensies: -- [intl](https://php.net/manual/en/intl.requirements.php) -- [libcurl](https://php.net/manual/en/curl.requirements.php) -- [mbstring](https://php.net/manual/en/mbstring.installation.php) -- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**, - **PNG** and **WEBP** libraries. -- [exif](https://www.php.net/manual/en/exif.installation.php) +- [intl](https://www.php.net/manual/fr/intl.requirements.php) +- [libcurl](https://www.php.net/manual/fr/curl.requirements.php) +- [mbstring](https://www.php.net/manual/fr/mbstring.installation.php) +- [gd](https://www.php.net/manual/en/image.installation.php) met **JPEG**, + **PNG** en **WEBP** bibliotheken. +- [exif](https://www.php.net/manual/fr/exif.installation.php) -Additionally, make sure that the following extensions are enabled in your PHP: +Zorg er daarnaast voor dat de volgende extensies zijn ingeschakeld in je PHP: -- json (enabled by default - don't turn it off) -- xml (enabled by default - don't turn it off) -- [mysqlnd](https://php.net/manual/en/mysqlnd.install.php) +- json (standaard ingeschakeld - niet uitschakelen) +- xml (standaard ingeschakeld - niet uitschakelen) +- [mysqlnd](https://www.php.net/manual/fr/mysqlnd.install.php) -### MySQL compatible database +### Compatibele MySQL-database -> We recommend using [MariaDB](https://mariadb.org). +> We raden aan om [MariaDB](https://mariadb.org) te gebruiken. -::: warning Warning +::: warning Let op -Castopod only works with supported MySQL 5.7 or higher compatible databases. It -will break with the previous MySQL v5.6 for example as its end of life was on -February 5, 2021. +Castopod werkt alleen met MySQL-databases van versie 5.7 of hoger. Versies 5.6 (waarvan de ondersteuning op 5 februari 2021 is gestopt) of ouder werken niet. ::: -You will need the server hostname, database name, username and password to -complete the installation process. If you do not have these, please contact your -server administrator. +Je hebt de hostnaam van de server, de naam van de database, de gebruikersnaam en het wachtwoord nodig om het installatieproces te voltooien. Als je deze informatie niet hebt, neem dan contact op met je beheerder. -#### Privileges +#### Toegangsrechten -User must have at least these privileges on the database for Castopod to work: -`CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`, `UPDATE`, -`REFERENCES`, `CREATE VIEW`. +De gebruiker moet in ieder geval de volgende toegangsrechten hebben op de database om Castopod te laten werken: `CREATE`, `ALTER`, `DELETE`, `EXECUTE`, +`INDEX`,`INSERT`, `SELECT`, `UPDATE`,`REFERENCES`, `CREATE VIEW`. -### (Optional) FFmpeg v4.1.8 or higher for Video Clips +### (Optioneel) FFmpeg v4.1.8 of hoger voor videoclips -[FFmpeg](https://www.ffmpeg.org/) version 4.1.8 or higher is required if you -want to generate Video Clips. The following extensions must be installed: +[FFmpeg](https://www.ffmpeg.org/) versie 4.1.8 of hoger is vereist als je videoclips wilt genereren. De volgende extensies moeten zijn geïnstalleerd: -- **FreeType 2** library for - [gd](https://www.php.net/manual/en/image.installation.php). +- **FreeType 2** bibliotheek voor [gd](https://www.php.net/manual/en/image.installation.php). -### (Optional) Other recommendations +### (Optioneel) Andere aanbevelingen -- Redis for better cache performances. -- CDN for static files caching and better performances. -- e-mail gateway for lost passwords. +- Redis voor betere cache-prestaties. +- CDN voor het cachen van statische bestanden en betere prestaties. +- E-mail gateway voor verloren wachtwoorden. -## Install instructions +## Installatie-instructies -### Pre-requisites +### Vereisten -0. Get a Web Server with [requirements](#requirements) installed -1. Create a MySQL database for Castopod with a user having access and - modification privileges (for more info, see - [MySQL compatible database](#mysql-compatible-database)). -2. Activate HTTPS on your domain with an _SSL certificate_. -3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto - the web server if you haven’t already. - - ⚠️ Set the web server document root to the `public/` sub-folder within the - `castopod` folder. -4. Add **cron tasks** on your web server for various background processes - (replace the paths accordingly): +0. Verkrijg een webserver met de geïnstalleerde [vereisten](#vereisten) +1. Maak een MySQL-database aan voor Castopod met een gebruiker met de juiste toegangsrechten en bewerkingsrechten (zie [compatibele MySQL-database](#comptible-mysql-database) voor meer informatie). +2. Zorg ervoor dat HTTPS is ingeschakeld op je domein met een _SSL-certificaat_. +3. Download en unzip het laatste [Castopod-pakket](https://castopod.org/) op de webserver als je dat nog niet hebt gedaan. + - ⚠️ Zorg ervoor dat de rootmap van het webdocument verwijst naar de `public/` submap van de `castopod` map. +4. Voeg **cron-taken** toe aan je webserver voor verschillende achtergrondprocessen (vervang de paden dienovereenkomstig): ```bash - * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1 + * * * * * /pad/naar/php /pad/naar/castopod/spark tasks:run >> /dev/null 2>&1 ``` - **Note** - If you do not add this cron task, the following Castopod features - will not work: + **Opmerking** - Als je deze cron-taak niet toevoegt, werken de volgende Castopod-functies niet: - - Importing a podcast from an existing RSS feed - - Broadcasting social activities to your followers in the fediverse - - Broadcasting episodes to open hubs using - [WebSub](https://en.wikipedia.org/wiki/WebSub) - - Generating video clips - - [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips) + - Het importeren van een podcast uit een bestaande RSS-feed + - Het delen van sociale activiteiten met je volgers in het Fediverse + - Het uitzenden van afleveringen naar open hubs met behulp van [WebSub](https://en.wikipedia.org/wiki/WebSub) + - Het genereren van videoclips - [vereist FFmpeg](#optioneel-ffmpeg-v418-of-hoger-voor-videoclips) -### (recommended) Install Wizard +### (Aanbevolen methode) Installatiewizard -1. Run the Castopod install script by going to the install wizard page - (`https://your_domain_name.com/cp-install`) in your favorite web browser. -2. Follow the instructions on your screen. -3. Start podcasting! +1. Voer het Castopod-installatiescript uit door naar de installatiewizard-pagina (`https://your_domain_name.com/cp-install`) te gaan in je favoriete webbrowser. +2. Volg de weergegeven instructies. +3. Begin met podcasten! -::: info Note +:::info Opmerking -The install script writes a `.env` file in the package root. If you cannot go -through the install wizard, you can create and edit the `.env` file manually -based on the `.env.example` file. +Het installatiescript maakt een `.env`-bestand aan in de hoofdmap van het pakket. Als je de installatiewizard niet kunt gebruiken, kun je het `.env`-bestand handmatig maken en bewerken op basis van het `.env.example`-bestand. ::: -### Email/SMTP setup +### E-mail/SMTP-configuratie -Email configuration is required for some features to work properly (eg. -retrieving your forgotten password, sending instructions to premium subscribers, -…) +E-mailconfiguratie is vereist voor sommige functies om correct te werken (bijv. het ophalen van je vergeten wachtwoord, het verzenden van instructies naar premium-abonnees, ...) -You may add your email configuration in your instance's `.env` like so: +Je kunt je e-mailconfiguratie toevoegen aan het `.env`-bestand van je Castopod-instantie zoals hieronder weergegeven: ```ini -# […] +# [...] email.fromEmail="your_email_address" email.SMTPHost="your_smtp_host" -email.SMTPUser="your_smtp_user" -email.SMTPPass="your_smtp_password" -``` - -#### Email config options - -| Variable name | Type | Default | -| ---------------- | -------------------- | ------------ | -| **`fromEmail`** | string | `undefined` | -| **`fromName`** | string | `"Castopod"` | -| **`SMTPHost`** | string | `undefined` | -| **`SMTPUser`** | string | `undefined` | -| **`SMTPPass`** | string | `undefined` | -| **`SMTPPort`** | number | `25` | -| **`SMTPCrypto`** | [`"tls"` or `"ssl"`] | `"tls"` | - -### Media storage - -By default, files are saved to the `public/media` folder using the file system. -If you need to relocate the `media` folder to a different location, you can -specify it in your `.env` file as shown below: - -```ini -# […] - -media.root="media" -media.storage="/mnt/storage" -``` - -In this example, the files will be saved to the /mnt/storage/media folder. Make -sure to also update your web server configuration to reflect this change. - -### S3 - -If you prefer storing your media files on an S3 compatible storage, you may -specify it in your `.env`: - -```ini -# […] - -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" -``` - -#### S3 config options - -| Variable name | Type | Default | -| ----------------------- | ------- | ----------- | -| **`endpoint`** | string | `undefined` | -| **`key`** | string | `undefined` | -| **`secret`** | string | `undefined` | -| **`region`** | string | `undefined` | -| **`bucket`** | string | `castopod` | -| **`protocol`** | number | `undefined` | -| **`pathStyleEndpoint`** | boolean | `false` | -| **`keyPrefix`** | string | `undefined` | - -## Community packages - -If you don't want to bother with installing Castopod manually, you may use one -of the packages created and maintained by the open-source community. - -### Install with YunoHost - -[YunoHost](https://yunohost.org/) is a distribution based on Debian GNU/Linux -made up of free and open-source software packages. It manages the hardships of -self-hosting for you. - -
- - - Install Castopod with YunoHost - - -Github -Repo - -
+email.SM \ No newline at end of file diff --git a/docs/src/nl/getting-started/security.md b/docs/src/nl/getting-started/security.md index e205698d..47078b9d 100644 --- a/docs/src/nl/getting-started/security.md +++ b/docs/src/nl/getting-started/security.md @@ -1,26 +1,22 @@ --- -title: Security +title: Veiligheid --- -# Security concerns +# Veiligheidsvragen -Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP -framework that encourages -[good security practices](https://codeigniter.com/user_guide/concepts/security.html). +Castopod is ontwikkeld op [CodeIgniter4](https://codeigniter.com/), een PHP-framework dat +[goede veiligheidspraktijken](https://codeigniter.com/user_guide/concepts/security.html) aanmoedigt. -To maximize your instance's safety and prevent any malicious attack, we -recommend you update all your Castopod files permissions after installation or -updates (to avoid any prior permission error): +Om de veiligheid van uw instantie te waarborgen en kwaadwillige aanvallen te voorkomen, raden we u aan de bestandsmachtigingen van Castopod bij te werken na de installatie en elke update (en fouten in bestandstoegang te vermijden): -- `writable/` folder must be **readable** and **writable**. -- `public/media/` folder must be **readable** and **writable**. -- any other file must be set to **readonly**. +- De map `writable/` moet **leesbaar** en **schrijfbaar** zijn. +- De map `public/media/` moet **leesbaar** en **schrijfbaar** zijn. +- Alle andere bestanden moeten alleen **leesbaar** zijn. -For instance, if you are using Apache or NGINX with Ubuntu you may do the -following: +Bijvoorbeeld, als u Apache of NGINX gebruikt met Ubuntu, kunt u de volgende commando's uitvoeren: ```bash sudo chown -R root:root /path/to/castopod sudo chown -R www-data:www-data /path/to/castopod/writable sudo chown -R www-data:www-data /path/to/castopod/public/media -``` +``` \ No newline at end of file diff --git a/docs/src/nl/getting-started/update.md b/docs/src/nl/getting-started/update.md index 98e019fb..f685d7bb 100644 --- a/docs/src/nl/getting-started/update.md +++ b/docs/src/nl/getting-started/update.md @@ -3,107 +3,93 @@ title: Update sidebarDepth: 3 --- -# How to update Castopod? +# Hoe Castopod te installeren? -After installing Castopod, you may want to update your instance to the latest -version in order to enjoy the latest features ✨, bug fixes 🐛 and performance -improvements ⚡. +Nadat je Castopod hebt geïnstalleerd, kun je je instantie updaten naar de nieuwste versie om te profiteren van de nieuwste functies ✨, bugfixes 🐛 en prestatieverbeteringen ⚡. -## Update instructions +## Update-instructies -0. ⚠️ Before any update, we highly recommend you backup your Castopod files and - database. +0. ⚠️ Voordat je een update uitvoert, raden we je ten zeerste aan om een back-up te maken van je Castopod-bestanden en database. - - cf. - [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) + - Zie + [Moet ik een back-up maken voordat ik update?](#should-i-make-a-backup-before-updating) -1. Go to the - [releases page](https://code.castopod.org/adaures/castopod/-/releases) and - see if your instance is up to date with the latest Castopod version +1. Ga naar de + [releases-pagina](https://code.castopod.org/adaures/castopod/-/releases) en + controleer of je instantie up-to-date is met de nieuwste Castopod-versie. - - cf. - [Where can I find my Castopod version?](#where-can-i-find-my-castopod-version) + - Zie + [Waar kan ik mijn Castopod-versie vinden?](#where-can-i-find-my-castopod-version) -2. Download the latest release package named `Castopod Package`, you may choose - between the `zip` or `tar.gz` archives +2. Download het meest recente release-pakket genaamd `Castopod Package`, je kunt kiezen tussen de `zip` of `tar.gz` archieven. - - ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code - - Note that you can also download the latest package from - [castopod.org](https://castopod.org/) + - ⚠️ Zorg ervoor dat je het Castopod Package downloadt en **NIET** de broncode. + - Let op dat je het nieuwste pakket ook kunt downloaden vanaf + [castopod.org](https://castopod.org/). -3. On your server: +3. Op je server: - - Remove all files except `.env` and `public/media` - - Copy the new files from the downloaded package into your server + - Verwijder alle bestanden behalve `.env` en `public/media`. + - Kopieer de nieuwe bestanden van het gedownloade pakket naar je server. - ::: info Note + ::: info Opmerking - You may need to reset files permissions as during the install process. - Check [Security Concerns](./security.md). + Mogelijk moet je de bestandsrechten opnieuw instellen, zoals je deed tijdens het installatieproces. Zie + [Beveiligingsproblemen](./security.md). ::: -4. Update your database schema from your `Castopod Admin` > `About` page or by - running: +4. Werk je databaseschema bij vanuit je `Castopod Admin` > `About` pagina of door het volgende uit te voeren: ```bash php spark castopod:database-update ``` -5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > - `Housekeeping` -6. ✨ Enjoy your fresh instance, you're all done! +5. Wis je cache vanuit je `Castopod Admin` > `Settings` > `general` > + `Housekeeping`. +6. ✨Geniet van je nieuwe instantie, je bent klaar! -::: info Note +::: info Opmerking -Releases may come with additional update instructions (see -[releases page](https://code.castopod.org/adaures/castopod/-/releases)). +Versies kunnen aanvullende update-instructies bevatten (zie +[Releases-pagina](https://code.castopod.org/adaures/castopod/-/releases)). -- cf. - [I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do) +- Zie + [Wat moet ik doen als ik mijn instantie lange tijd niet heb bijgewerkt?](#je-nai-pas-mis-à-jour-mon-instance-depuis-longtemps-que-devrais-je-faire) ::: -## Fully Automated updates +## Volledig geautomatiseerde updates -> Coming soon... 👀 +> Binnenkort beschikbaar... 👀 -## Frequently asked questions (FAQ) +## Veelgestelde vragen (FAQ) -### Where can I find my Castopod version? +### Waar kan ik mijn Castopod-versie vinden? -Go to your Castopod admin panel, the version is displayed on the bottom left -corner. +Ga naar je Castopod-beheerderspaneel, de versie wordt weergegeven linksonder. -Alternatively, you can find the version in the `app > Config > Constants.php` -file. +Je kunt de versie ook vinden in de applicatie +`> Configuration > Constantes.php` map. -### I haven't updated my instance in a long time… What should I do? +### Wat moet ik doen als ik mijn instantie lange tijd niet heb bijgewerkt? -No problem! Just get the latest release as described above. Only, when going -through the release instructions (4), perform them sequentially, from the oldest -to the newest. +Geen probleem! Haal gewoon de nieuwste versie op zoals hierboven beschreven. Bij het uitvoeren van de update-instructies (4), voer ze sequentieel uit, van oudste naar nieuwste. -> You may want to backup your instance depending on how long you haven't updated -> Castopod. +> Je moet je instance back-uppen op basis van de datum van je laatste Castopod-update. -For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to -`v1.0.0-beta.1`: +Bijvoorbeeld, als je op `v1.0.0-alpha.42` zit en je wilt updaten naar `v1.0.0-beta.1`: -0. (highly recommended) Make a backup of your files and database. +0. (sterk aanbevolen) Maak een back-up van je bestanden en database. -1. Download the latest release, overwrite your files whilst keeping `.env` and - `public/media`. +1. Download de nieuwste versie, overschrijf je bestanden terwijl je `.env` en `public/media` behoudt. -2. Go through each release update instructions sequentially (from oldest to - newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`, - `v1.0.0-alpha.45`, …, `v1.0.0-beta.1`. +2. Voer de update-instructies één voor één uit (van oudste naar nieuwste). -3. ✨ Enjoy your fresh instance, you're all done! +3. ✨Je nieuwe instantie is klaar! -### Should I make a backup before updating? +### Moet ik een back-up maken voordat ik update? -We advise you do, so you don't lose everything if anything goes wrong! +We raden je aan dit te doen, zodat je niets verliest als er iets misgaat! -More generally, we advise you make regular backups of your Castopod files and -database to prevent you from losing it all… +Over het algemeen raden we je aan regelmatig back-ups te maken van je Castopod-bestanden en database om te voorkomen dat je alles kwijtraakt... \ No newline at end of file diff --git a/docs/src/nl/index.md b/docs/src/nl/index.md index 42ec8ed0..4bc7d48b 100644 --- a/docs/src/nl/index.md +++ b/docs/src/nl/index.md @@ -2,171 +2,120 @@ sidebarDepth: 2 --- -# Welcome 👋 +# Welkom 👋 [![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![stars-badge]][stars] -Castopod is a free & open-source hosting platform made for podcasters who want -engage and interact with their audience. +Castopod is a gratis en open-source hostingplatform die is ontworpen voor podcasters die willen communiceren en interageren met hun publiek. -Castopod is easy to install and was built on top of -[CodeIgniter4](https://codeigniter.com/), a powerful PHP framework with a very -small footprint. +Castopod is eenvoudig te installeren en is gebouwd met [CodeIgniter4](https://codeigniter.com/), een krachtig PHP-framework van zeer kleine omvang. -## Features +## Kenmerken -- 🌱  Free & open-source (AGPL v3 License) -- 🔐  Focused on data sovereignty: your content, audience, and analytics - belong to you, and you only -- 🪄  Podcasting 2.0 features: GUID, locked, transcripts, funding, - chapters, location, persons, soundbites, … -- 💬  Built-in social network: - - 🚀  Castopod is part of the Fediverse, a decentralized social network - - ❤️  Create posts, share, favourite, and comment on episodes -- 📈  Built-in analytics: - - ⚖️  GDPR / CCPA / LGPD compliant - - 🪙  Standard IABv2 audience measurement - - 🏡  On-premises analytics, no third party involved -- 📢  Built-in marketing tools: - - ✅  SEO ready (open-graph meta-tags, JSON-LD, …) - - 📱  PWA: install as a standalone app - - 🎨  Customizable theme colors - - 🎬  Generate ready-to-share Video clips from episodes - - 🔉  Generate soundbites - - ▶️  Embeddable player, embed your episodes on any website -- 💸  Monetization: - - 🔗  Funding links - - 📲  listen-to-click ads - - 🤝  value4value / WebMonetization +- 🌱  Gratis, gratis en open-source (Licentie AGPL v3) +- 🔐  Gefocust op gegevenssoevereiniteit: uw inhoud, uw publiek en uw statistieken zijn van u en alleen van u +- 🪄 Podcasting 2.0-functies: GUID, vergrendeling, transcripties, financiering, hoofdstukken, geolocatie, deelnemers, geluidsfragmenten, ... +- 💬  Geïntegreerd sociaal netwerk: + - 🚀  Castopod maakt deel uit van Fediverse, een gedecentraliseerd sociaal netwerk + - ❤️  Berichten maken, delen, markeren als favoriet en reageren op afleveringen +- 📈  Ingebouwde statistieken: + - ⚖️  Compatibel met GDPR / CCPA / LGPD + - 🪙 IABv2 publieksmeting + - 🏡  Ingebouwde statistieken, geen tussenpartij +- 📢  Geïntegreerde marketingtools: + - ✅  Klaar voor SEO (open-graph metatags, JSON-LD, ...) + - 📱  PWA: installeer als standalone app + - 🎨  Aanpasbare themakleuren + - 🎬  Genereer deelklare videoclips van afleveringen + - 🔉  Genereer geluidsfragmenten + - ▶️  Integreer uw afleveringen op elke website +- 💸  Monetisatie: + - 🔗  Financieringslink + - 📲  advertenties "listen-to-click" + - 🤝  value4value / WebMonetisatie - 💎  Premium podcasts -- 📡  Publish your episodes everywhere with RSS: - - 📱  On all indexes and apps: Podcast Index, Apple Podcasts, Spotify, - Google Podcasts, Deezer, Podcast Addict, Podfriend, … - - ⚡  Broadcast your episodes instantly with WebSub -- 📥  Podcast import: move your existing podcast into Castopod -- 📤  Move your podcast out of Castopod -- 🔀  Multi-tenant: host as many podcasts as you want -- 👥  Multi-user: add contributors and set roles -- 🌎  i18n support: translated in English, French, Polish, German, - Brazilian Portuguese & Spanish… with - [more to come](https://translate.castopod.org)! +- 📡  Publiceer uw afleveringen overal met RSS: + - 📱  Op alle indexen en apps: Podcast Index, Podcasts Apple, Spotify, Google Podcasts, Deezer, Podcast Addict, Podfriend, ... + - ⚡ Stream uw afleveringen onmiddellijk via WebSub +- 📥  Podcast importeren: verplaats uw bestaande podcast naar Castopod +- 📤  Verhuis uw podcast naar een andere host +- 🔀  Multi-tenant: host zoveel podcasts als je wilt +- 👥  Multi-gebruiker: voeg bijdragers toe en definieer hun rollen +- 🌎  i18n-ondersteuning: vertaald in het Engels, Frans, Pools, Duits, Portugees, Braziliaans & Spaans... en [meer in de toekomst](https://translate.castopod.org)! -## Motivation +## Waarom Castopod? -The podcasting ecosystem is decentralized by nature: you can create your podcast -as an RSS file, publish it on the web and have it shared everywhere online. +Het podcastecosysteem is van nature decentraal: je kunt je podcast maken als een RSS-bestand, het publiceren op het web en het overal online delen. -It is in fact one of the only media to have stayed this way for a long time. +Het is eigenlijk een van de weinige media die lange tijd op deze manier is gebleven. -As usages are evolving, more and more people are getting into podcasts: whether -it is creators finding new ways to share their ideas, or listeners in the search -for better content. +Naarmate het gebruik verandert, raken steeds meer mensen geïnteresseerd in podcasts: of het nu gaat om makers die nieuwe manieren vinden om hun ideeën te delen, of luisteraars die op zoek zijn naar betere inhoud. -With podcasting becoming more widely used, some companies are trying to shift it -towards a more controlled and centralized medium. +Met het steeds wijdverspreider gebruik van podcasting proberen sommige bedrijven het te verschuiven naar een meer gecontroleerd en gecentraliseerd medium. -Castopod was created in an effort to provide an open and sustainable alternative -to hosting your podcasts, promoting decentralization to ensure that podcasters -creativity can express itself. +Castopod is gemaakt om een open en duurzaam alternatief te bieden voor het hosten van uw podcasts, en bevordert decentralisatie om ervoor te zorgen dat de creativiteit van podcasters zich kan uiten. -This project is pushed by the open-source community, and specifically by the -[Fediverse](https://fediverse.party/en/fediverse/) and -[Podcasting 2.0](https://podcastindex.org/) movements. +Dit project wordt gesteund door de open-source community, en specifiek door de Fediverse- en Podcasting 2.0-bewegingen. -## Comparison with other solutions +## Vergelijking met andere oplossingen -We believe that a solution is not necessarily right for everyone, it highly -depends on your needs. So, here are comparisons with other tools to help you to -gauge whether Castopod is the right fit for you. +Wij zijn van mening dat een oplossing niet per se geschikt is voor iedereen, het hangt sterk af van uw behoeften. Hier zijn vergelijkingen met andere tools om u te helpen beoordelen of Castopod bij u past. -### Castopod vs Wordpress +### Castopod vs. Wordpress -Castopod is often referred to as "the Wordpress for podcasts" because of the -similarities between the two. In some ways this is true. And actually, Castopod -was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption -from the community and the number of websites running it. +Castopod wordt vaak aangeduid als "de Wordpress voor podcasts" vanwege de overeenkomsten tussen beide. In zekere zin is dit waar. En eigenlijk is Castopod sterk geïnspireerd door het Wordpress-ecosysteem, gezien de gemakkelijke acceptatie door de community en het aantal websites dat het gebruikt  -Just like Wordpress, Castopod is free & open source, built using PHP with a -MySQL database and is packaged in a way that you can easily install on most web -servers. +Net als Wordpress is Castopod gratis & open-source, gebouwd met behulp van PHP en een MySQL-database en is het verpakt op een manier dat je het gemakkelijk kunt installeren op de meeste webservers. -Wordpress is a great way to create your website and extend it with plugins to -get what you want. It is a full fledged CMS that helps you get any type of -website online. +Wordpress is een geweldige manier om je website te maken en uit te breiden met plugins om te krijgen wat je wilt. Het is een volwaardig CMS waarmee je elk type website online kunt krijgen. -On the other hand, Castopod is meant to address the podcasters needs -specifically, focusing on podcasting, and nothing else. You don't need any -plugin to get you started on your podcasting journey. +Castopod daarentegen is bedoeld om specifiek aan de behoeften van podcasters te voldoen, waarbij de focus ligt op podcasting, en niets anders. Je hebt geen plugin nodig om aan de slag te gaan met je podcast-reis. -This allows optimizing the processes specific to podcasting: ranging from the -creation of your podcasts and the publication of new episodes all the way to -broadcasting, marketing and analytics. +Dit maakt het mogelijk om de processen die specifiek zijn voor podcasting te optimaliseren: van het maken van je podcasts en het publiceren van nieuwe afleveringen tot het uitzenden, promoten en analyseren van je podcasts. -Finally, depending on your needs, Wordpress and Castopod can even live side by -side as they share the same requirements! +Uiteindelijk kunnen Wordpress en Castopod, afhankelijk van uw behoeften, zelfs naast elkaar bestaan omdat ze dezelfde vereisten delen! -### Castopod vs Funkwhale +### Castopod vs. Funkwhale -Funkwhale is a self-hosted, modern free and open-source music server. Just as -Castopod, Funkwhale is on the fediverse, a decentralized social network allowing -interoperability between the two. +Funkwhale is een zelf-gehoste, moderne gratis en open-source muziekserver. Net als Castopod bevindt Funkwhale zich op het Fediverse, een gedecentraliseerd sociaal netwerk dat interoperabiliteit tussen de twee mogelijk maakt. -Funkwhale was initially built around music. And later on, as the project -evolved, the ability to host podcasts was introduced. +Funkwhale is oorspronkelijk gebouwd rond muziek. Later, naarmate het project zich ontwikkelde, werd de mogelijkheid om podcasts te hosten geïntroduceerd. -Unlike Funkwhale, Castopod has been designed and built around podcasting -exclusively. This allows easier implementation for features related to the -podcasting ecosystem, such as the podcasting 2.0 features (transcripts, -chapters, locations, persons, …). +In tegenstelling tot Funkwhale is Castopod exclusief ontworpen en gebouwd rond podcasting. Dit maakt het eenvoudiger om functies te implementeren die verband houden met het podcastecosysteem, zoals de podcasting 2.0-functies (transcripties, hoofdstukken, locaties, personen, ...). -So, you should probably use Funkwhale if you want to host your music, and use -Castopod if you want to host your podcasts. +Je zou Funkwhale moeten gebruiken als je je muziek wilt hosten, en Castopod als je je podcasts wilt hosten. -### Castopod vs other podcast hosts +### Castopod vs. Andere podcasthosts -There are many solutions for you to host your podcasts, some of which are really -great and [a lot of them](https://podcastindex.org/apps) are jumping into the -Podcasting 2.0 wagon just like Castopod! +Er zijn veel oplossingen voor het hosten van je podcasts, waarvan er vele echt geweldig zijn en [veel ervan](https://podcastindex.org/apps) springen net zo goed op de Podcasting 2.0-trein als Castopod! -Each of these solutions differ from one another, you may compare with the -[list of features](#features). +Elke oplossing verschilt van elkaar, je kunt vergelijken met de [lijst met functies](#features). -That being said, there are two main differences with other podcasting solutions: +Dat gezegd hebbende, zijn er twee belangrijke verschillen met andere podcastoplossingen: -- Castopod can be self-hosted and is the only solution that allows you to keep - full control over what you produce. Also, as it is open-source, you can even - customize it as you wish. +- Castopod kan zelf worden geïnstalleerd en is de enige oplossing waarmee u de volledige controle heeft over wat u produceert. Aan de andere kant, omdat het open-source is, heeft u de mogelijkheid om het aan uw behoeften aan te passen. -- Castopod is the only solution that currently integrates both a decentralized - social network with ActivityPub as well as many of the podcasting 2.0 - features, hoping to bridge the gap between the two. +- Castopod is de enige oplossing die op dit moment zowel een gedecentraliseerd sociaal netwerk met ActivityPub integreert als "Podcasting 2.0"-functionaliteiten, waardoor de kloof tussen beide wordt verkleind. -## Contributing +## Bijdragen -Love Castopod and would like to help? Take a look at the following documentation -to get you started. +Hou je van Castopod en wil je helpen? Bekijk de volgende documentatie om je op weg te helpen. -### Code of conduct +### Gedragscode -Castopod has adopted a Code of Conduct that we expect project participants to -adhere to. Please read the -[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md) -so that you can understand what actions will and will not be tolerated. +Castopod heeft een Gedragscode aangenomen waarvan we verwachten dat deelnemers aan het project zich eraan houden. Lees de [GEDRAGSREGELS](https://code.castopod.org/adaures/castopod/-/blob/beta/gedragsregels.md) zodat je begrijpt welke acties wel en niet zullen worden getolereerd. -### Contributing guide +### Bijdragengids -Read our [contributing guide](./contributing/guidelines.md) to learn about our -development process, how to propose bugfixes and improvements, and how to build -and test your changes to Castopod. +Lees onze [bijdragengids](./contributing/guidelines.md) om meer te weten te komen over ons ontwikkelingsproces, hoe je bugfixes en verbeteringen kunt voorstellen, en hoe je je wijzigingen in Castopod kunt bouwen en testen. -## Contributors ✨ +## Bijdragers ✨ -Thanks goes to these wonderful people -([emoji key](https://allcontributors.org/docs/en/emoji-key)): +Dank aan deze geweldige mensen ([emoji sleutel](https://allcontributors.org/docs/en/emoji-key)): @@ -174,126 +123,25 @@ Thanks goes to these wonderful people - - - - - - - + + + + + + - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Yassine Doghri
Yassine Doghri

💻 🐛 📖 👀 🚧 🖋 🎨 ️️️️♿️ 🌍 💬 🧑‍🏫 🚇 🤔 📆 📝
Benjamin Bellamy
Benjamin Bellamy

💻 🐛 👀 🖋 🌍 💬 🚇 🤔 📝 📆 📢
Ola Hneini
Ola Hneini

💻 👀 📖 🚧 💬 🤔
Romain de Laage
Romain de Laage

💻 🚇 📖 🌍 🤔
Lyonel Bernard
Lyonel Bernard

🐛 💬 🔊 🤔
Christopher Lagonick-Weitzel
Christopher Lagonick-Weitzel

🐛 💬 🔊 🤔
Ernesto Acosta
Ernesto Acosta

🐛 🔊 🌍 💬 🤔
Yassine Doghri
Yassine Doghri

💻 🐛 📖 👀 🚧 🖋 🎨 ️️️️♿️ 🌍 💬 🧑‍🏫 🚇 🤔 📆 📝
Benjamin Bellamy
Benjamin Bellamy

💻 🐛 👀 🖋 🌍 💬 🚇 🤔 📝 📆 📢
Benjamin Bellamy
Benjamin Bellamy

💻 🐛 📖 🚧 💬 🤔
Ola Hneini
Ola Hneini

💻 👀 📖 🚧 💬 🤔
Mark Spark
Mark Spark

💻 🚇
François Grégoire
François Grégoire

💻
Bastien Luneteau
Bastien Luneteau

💻 🐛
Cécile Ricordeau
Cécile Ricordeau

🎨
Patryk Miś
Patryk Miś

🌍
Marcin Lewandowski
Marcin Lewandowski

🐛 🤔
Sebastian Janik
Sebastian Janik

💻
Patryk Karczmarczyk
Patryk Karczmarczyk

💻
denis d
denis d

🐛 🤔
ComputerGuru
ComputerGuru

💻
Joe Scylla
Joe Scylla

🚇 💬 🤔
amdg2 on Mastodon
amdg2 on Mastodon

💻 💬 🤔
Incenp on Open Collective
Incenp on Open Collective

💵
Philippe Charrière
Philippe Charrière

💻 🚇 🤔 📆 🔧
Lucas
Lucas

💻
Douglas Kastle
Douglas Kastle

🐛 🤔
cExplorer
cExplorer

🐛 🌍
ImaCrea
ImaCrea

🐛 🤔
Jonas S
Jonas S

💻
LEFEBVRE Yann
LEFEBVRE Yann

🐛
Sebastian Späth
Sebastian Späth

🐛 🤔
rocky III
rocky III

🐛
Hermann Josef Eckl
Hermann Josef Eckl

🐛
Delhaye Cyrille
Delhaye Cyrille

🐛 🤔
João Leandro
João Leandro

🌍 🤔
Angelos Chouvardas
Angelos Chouvardas

🌍
Eivind
Eivind

🌍
Ewen
Ewen

🌍 🤔
forght
forght

🌍
glottis0q
glottis0q

🌍
ButterflyOfFire
ButterflyOfFire

🌍
Lucian I. Last
Lucian I. Last

🌍
LuuzViir
LuuzViir

🌍
CTHTC
CTHTC

🌍
Russian Retro
Russian Retro

🌍
Marek L'ach
Marek L'ach

🌍
GunChleoc
GunChleoc

🌍
GabiSnow
GabiSnow

🌍
bendaha
bendaha

🌍
Samuel Roland
Samuel Roland

🌍
Dimitri Regnier
Dimitri Regnier

🤔
irithys
irithys

🌍
Sergi
Sergi

🌍
ghose (XoseM)
ghose (XoseM)

🌍
Andreas Olsson
Andreas Olsson

🌍
leonfrom
leonfrom

🌍
agentcobra
agentcobra

🌍
Alessandro
Alessandro

🌍
liimee
liimee

🌍
Ahmed Sabouni
Ahmed Sabouni

🌍
KrzysztofDomanczyk
KrzysztofDomanczyk

💻
- - - - - - -This project follows the -[all-contributors](https://github.com/all-contributors/all-contributors) -specification. Contributions of any kind welcome! - -## Contact - -You may reach us for help or ask any question you have on: - -- [Discord](https://castopod.org/discord) (for direct interaction with - developers and the community) -- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for - feature requests & bug reports) - -Alternatively, you can follow us on social media platforms to get news about -Castopod: - -- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance) -- [Twitter](https://twitter.com/castopod) -- [LinkedIn](https://linkedin.com/company/castopod) -- [Facebook](https://www.facebook.com/castopod) - -## Sponsors - -The ongoing development of Castopod is made possible with the support of its -backers. If you'd like to help, please consider -[sponsoring Castopod's development](https://opencollective.com/castopod/contribute). - -
- Ad Aures Logo - NLnet Logo -
- -## License - -[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/) - -Copyright © 2020-present, [Ad Aures](https://adaures.com/). -https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release -https://img.shields.io/github/license/ad-aures/castopod?color=blue -https://img.shields.io/badge/contributions-welcome-brightgreen.svg -https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg -https://img.shields.io/github/stars/ad-aures/castopod?style=social - -[release]: https://code.castopod.org/adaures/castopod/-/releases -[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md -[contributions]: https://code.castopod.org/adaures/castopod/-/issues -[semantic-release]: https://github.com/semantic-release/semantic-release -[discord]: https://castopod.org/discord -[stars]: https://github.com/ad-aures/castopod/stargazers -[crowdin]: https://translate.castopod.org/project/castopod + Maxime Desantis
Maxime Desantis

🚇 + Virgile POYET
Virgile POYET

💻 + Comain
Comain

💻 + Antoine Le Roy
Antoine Le Roy

💻 🚇 + Melvin
Melvin

💻 🚇 🤔 + mimilantern
mimilantern

[Malene for oppgaver](https://docs.gitlab.com/ee/user/project/description_templates.html#using-the-templates) har blitt opprettet for dette prosjektet. Du kan bruke dem til å hjelpe deg å følge disse retningslinjene. + +## Funksjonsforespørsler + +Funksjonsforespørsler er velkomne. Men ta deg et øyeblikk til å finne ut om ideen din passer innenfor prosjektets omfang og mål. Det er opp til _deg_ å argumentere godt for å overbevise prosjektets utviklere om fordelene med denne funksjonen. Vennligst gi så mye detaljer og sammenheng som mulig. + +## Trekkforespørsler + +Gode trekkforespørsler - lapper, forbedringer, nye funksjoner - er en fantastisk hjelp. De bør være fokusert på et bestemt område og unngå å inneholde irrelevante lapper. + +**Spør først** før du begynner på en betydelig trekkforespørsel (f.eks. implementering av funksjoner, omstrukturering av kode, overføring til et annet språk), ellers risikerer du å bruke mye tid på noe som prosjektets utviklere kanskje ikke ønsker å fusjonere inn i prosjektet. + +Vennligst følg kodestandardene som brukes gjennom hele prosjektet (innrykk, korrekte kommentarer, osv.) og eventuelle andre krav (som testdekning). + +Å følge følgende prosess er den beste måten å få arbeidet ditt inkludert i prosjektet: + +1. [Gaffel](https://docs.gitlab.com/ee/gitlab-basics/fork-project.html) prosjektet, klone gaflen din og konfigurere fjernkontrollene: + +```bash +# Klone gaflen av depotet til gjeldende mappe +git clone https://code.castopod.org//castopod.git + +# Naviger til den nyklonede mappen +cd castopod + +# Tilordne originaldepotet til en fjernkontroll som kalles "upstream" +git remote add upstream https://code.castopod.org/adaures/castopod.git +``` + +2. Hvis du klonet for en stund siden, få de nyeste endringene fra upstream: + +```bash +git checkout main +git pull upstream main +``` + +3. Opprett en ny emnegren (fra `main`-grenen) for å inneholde funksjonen, endringen eller reparasjonen: + +```bash +git checkout -b +``` + +4. Commit endringene dine i logiske deler. Vennligst følg disse [git commit-meldingsretningslinjene](https://conventionalcommits.org/), ellers kan koden din være usannsynlig å fusjoneres inn i hovedprosjektet. Bruk Gits [interaktive omgjøring](https://help.github.com/articles/about-git-rebase/) -funksjon til å rydde opp i commitene dine før du publiserer dem. + +5. Flet dine lokale endringer (eller omgjør) fra oppstrømsgrenen til ditt emnet gren: + +```bash +git pull [--omgjør] oppstrøm main +``` + +6. Trykk emnet gren opp til gaflen din: + +```bash +git push origin +``` + +7. [Åpne en trekkforespørsel](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html#new-merge-request-from-a-fork) med en tydelig tittel og beskrivelse. + +**VIKTIG**: Ved å sende en lapp samtykker du i at prosjekteierne kan lisensiere arbeidet ditt under vilkårene for [GNU AGPLv3](https://code.castopod.org/adaures/castopod/-/blob/main/LICENSE). + +## Samarbeidsretningslinjer + +Det er noen grunnleggende regler for å sikre høy kvalitet på prosjektet: + +- Før en fusjon krever en trekkforespørsel minst to godkjennelser fra samarbeiderne, med mindre det er en arkitektonisk endring, en stor funksjon, osv. I så fall må minst 50% av kjerne-teamet være enige om å fusjonere det, der hver teammedlem har full rett til å legge ned veto. (dvs. alle kan blokkere alle trekkforespørsler) +- En trekkforespørsel skal være åpen i minst to dager før fusjonering (gjelder ikke trivielle bidrag som å rette en skrivefeil). Slik har alle nok tid til å se på det. + +Du er alltid velkommen til å diskutere og foreslå forbedringer til disse retningslinjene. \ No newline at end of file diff --git a/docs/src/nn/contributing/setup-development.md b/docs/src/nn/contributing/setup-development.md new file mode 100644 index 00000000..b3bbd2df --- /dev/null +++ b/docs/src/nn/contributing/setup-development.md @@ -0,0 +1,149 @@ +--- +title: Oppsett av utviklingsmiljø +sidebarDepth: 3 +--- + +# Sett opp utviklingsmiljøet ditt + +## Innledning + +Castopod er en nettapplikasjon basert på `php`-rammeverket +[CodeIgniter 4](https://codeigniter.com). + +Vi bruker [Docker](https://www.docker.com/) for å raskt sette opp et utviklingsmiljø. En +`docker-compose.yml`- og en `Dockerfile`-fil er inkludert i prosjektets rotmappe for å hjelpe deg med å komme i gang med bidraget. + +> Du trenger ingen forkunnskaper om Docker for å følge de neste trinnene. +> Hvis du ønsker å bruke ditt eget miljø, er du velkommen til å gjøre det! + +## Oppsettinstruksjoner + +### 1. Forutsetninger + +0. Installer [docker](https://docs.docker.com/get-docker). + +1. Klon Castopod-prosjektet ved å kjøre: + + ```bash + git clone https://code.castopod.org/adaures/castopod.git + ``` + +2. Opprett en `.env`-fil med minimumskonfigurasjonen som kreves for å koble appen til + databasen og bruke Redis som hurtigbufferbehandler: + + ```ini + CI_ENVIRONMENT="development" + # Hvis det er satt til development, må du kjøre `npm run dev` for å starte serveren for statiske ressurser + vite.environment="development" + + # Som standard er dette satt til true i appkonfigurasjonen. + # For utvikling må dette settes til false fordi det + # kjøres i et lokalt miljø + app.forceGlobalSecureRequests=false + + app.baseURL="http://localhost:8080/" + media.baseURL="http://localhost:8080/" + + admin.gateway="cp-admin" + auth.gateway="cp-auth" + + database.default.hostname="mariadb" + database.default.database="castopod" + database.default.username="castopod" + database.default.password="castopod" + + cache.handler="redis" + cache.redis.host = "redis" + + # Du vil muligens ikke bruke Redis som hurtigbufferbehandler + # Kommenter/fjern de to linjene ovenfor og kommenter ut + # neste linje for filhurtigbufretjenester. + #cache.handler="file" + ``` + + > _NB._ Du kan tilpasse miljøet ditt ved å sette flere miljøvariabler + > i den egendefinerte `.env`-filen din. Se `env` for eksempler eller + > [CodeIgniter4-brukerveiledningen](https://codeigniter.com/user_guide/index.html) + > for mer informasjon. + +3. (for Docker Desktop) Legg til repositoriet du har klonet i Docker Desktops + `Settings` > `Resources` > `File Sharing` + +### 2. (anbefalt) Utvikle inne i appkontaineren med VSCode + +Hvis du bruker VSCode, kan du dra nytte av `.devcontainer/`-mappen. Den definerer et utviklingsmiljø (utviklerkontainer) med forhåndsinstallerte +krav og VSCode-utvidelser, slik at du ikke trenger å bekymre deg for dem. Alle +nødvendige tjenester vil bli lastet inn automatisk! 🪄 + +1. Installer VSCode-utvidelsen + [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) +2. `Ctrl/Cmd + Shift + P` > `Open in container` + + > VSCode-vinduet lastes inn på nytt inne i utviklerkontaineren. Forvent flere + > minutter under første lasting, da det bygger alle nødvendige tjenester. + + **Merk**: Utviklerkontaineren vil starte ved å kjøre Castopods PHP-server. + Under utviklingen må du også starte [Vite](https://vitejs.dev)s utviklingsserver for å kompilere TypeScript-koden og stilene: + + ```bash + # Kjør Vite-utviklingsserveren + npm run dev + ``` + + Hvis det oppstår problemer med at PHP-serveren ikke kjører, kan du starte dem på nytt + ved å bruke følgende kommandoer: + + ```bash + # Kjør Castopod-serveren + php spark serve - 0.0.0.0 + ``` + +3. Du er klar til å starte! 🎉 + + Du er nå **inne i utviklerkontaineren**, og du kan bruke VSCode-konsollen + (`Terminal` > `New Terminal`) for å kjøre kommandoer: + + ```bash + # PHP er installert + php -v + + # Composer er installert + composer -V + + # npm er installert + npm -v + + # Git er installert + git version + ``` + +For mer informasjon, se +[VSCode Remote Containers](https://code.visualstudio.com/docs/remote/containers) + +### 3. Start med å utvikle + +Du er klar til å gå i gang! Begynn med å trylle frem endringer i prosjektfilene! Du kan +bruke +[CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html) +for å få flere innsikter. + +For å se endringene dine, gå til: + +- `http://localhost:8080/` for Castopod-appen +- `http://localhost:8888/` for phpmyadmin-grensesnittet: + + - Brukernavn: **castopod** + - Passord: **castopod** + +### 2-alt. Utvikle utenfor appkontaineren + +Hvis du ikke ønsker å bruke VSCode-utviklerkontaineren, er det ikke noe problem! + +1. Start Docker-kontainere manuelt: + + Gå til prosjektets rotmappe og kjør: + + ```bash + # Starter alle tjenester som er oppført i docker-compose.yml-filen + # -d-bruket starter kontainerne i bakgrunnen + docker \ No newline at end of file diff --git a/docs/src/nn/getting-started/_category_.json b/docs/src/nn/getting-started/_category_.json new file mode 100644 index 00000000..fd5e6705 --- /dev/null +++ b/docs/src/nn/getting-started/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Kom i gang", + "position": 2 +} \ No newline at end of file diff --git a/docs/src/nn/getting-started/auth.md b/docs/src/nn/getting-started/auth.md new file mode 100644 index 00000000..a6910c6d --- /dev/null +++ b/docs/src/nn/getting-started/auth.md @@ -0,0 +1,87 @@ +--- +title: Autentisering og Autorisering +sidebarDepth: 3 +--- + +# Autentisering og Autorisering + +Castopod håndterer autentisering og autorisering ved hjelp av `codeigniter/shield` +sammen med tilpassede regler. Roller og tillatelser er definert på to nivåer: + +1. [Instance-baserte roller og tillatelser](#1-roller-og-tillatelser-basert-på-instans) +2. [Podcast-baserte roller og tillatelser](#2-roller-og-tillatelser-basert-på-podcast) + +## 1. Roller og tillatelser basert på instans + +### Roller på instansen + + + +| rolle | beskrivelse | tillatelser | +| ------------ | ----------------------------------- | ------------------------------------------------------------------------------------------ | +| Super admin | Har full kontroll over Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks | +| Leder | Håndterer innholdet i Castopod. | podcasts.create, podcasts.import, persons.manage, pages.manage | +| Podcaster | Generelle brukere av Castopod. | admin.access | + + + +### Tillatelser på instansen + + + +| tillatelse | beskrivelse | +| ----------------------- | ------------------------------------------------------------------ | +| admin.access | Kan få tilgang til administrasjonssiden til Castopod. | +| admin.settings | Kan få tilgang til innstillingene til Castopod. | +| users.manage | Kan administrere brukere på Castopod. | +| persons.manage | Kan håndtere personer. | +| pages.manage | Kan administrere sider. | +| podcasts.view | Kan se alle podcaster. | +| podcasts.create | Kan opprette nye podcaster. | +| podcasts.import | Kan importere podcaster. | +| fediverse.manage-blocks | Kan blokkere fediverse-brukere/domener fra å samhandle med Castopod. | + + + +## 2. Roller og tillatelser basert på podcast + +### Roller basert på podcast + + + +| rolle | beskrivelse | tillatelser | +| ------- | ------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Admin | Har full kontroll over podcast #{id}. | \* | +| Redaktør | Administrerer innholdet og publiseringene til podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments | +| Forfatter | Håndterer innholdet i podcast #{id}, men kan ikke publisere det. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips | +| Gjest | Generell bidragsyter til podcast #{id}. | view, episodes.view | + + + +### Tillatelser basert på podcast + + + +| tillatelse | beskrivelse | +| ------------------------ | ----------------------------------------------------------------------------------------- | +| view | Kan se oversikten og analysene av podcast #{id}. | +| edit | Kan redigere podcast #{id}. | +| delete | Kan slette podcast #{id}. | +| manage-imports | Kan synkronisere importerte podcast #{id}. | +| manage-persons | Kan håndtere abonnementer for podcast #{id}. | +| manage-subscriptions | Kan håndtere abonnementer for podcast #{id}. | +| manage-contributors | Kan håndtere bidragsytere for podcast #{id}. | +| manage-platforms | Kan konfigurere/slette plattformkoblinger for podcast #{id}. | +| manage-publications | Kan publisere podcast #{id}. | +| manage-notifications | Kan vise og merke notifikasjoner som lest for podcast #{id}. | +| interact-as | Kan samhandle som podcast #{id} for å legge til, dele eller svare på meldinger. | +| episodes.view | Kan se oversikten og analysene av podcast #{id}. | +| episodes.create | Kan opprette episoder for podcast #{id}. | +| episodes.edit | Kan redigere podcast #{id}. | +| episodes.delete | Kan slette podcast #{id}. | +| episodes.manage-persons | Kan håndtere abonnementer for podcast #{id}. | +| episodes.manage-clips | Kan administrere videoklipp eller lydbiter for podcast #{id}. | +| episodes.manage-publications | Kan publisere podcast #{id}. | +| episodes.manage-comments | Kan opprette/slette kommentarer for episoder i podcast #{id}. | + + \ No newline at end of file diff --git a/docs/src/nn/getting-started/docker.md b/docs/src/nn/getting-started/docker.md new file mode 100644 index 00000000..f07a1865 --- /dev/null +++ b/docs/src/nn/getting-started/docker.md @@ -0,0 +1,148 @@ +--- +title: Offisielle Docker-bilder +sidebarDepth: 3 +--- + +# Offisielle Docker-bilder for Castopod + +Castopod sender 3 Docker-bilder til Docker-hubben under den automatiserte byggprosessen: + +- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): et alt-i-ett Castopod-bilde som bruker nginx unit +- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): app-pakken med alle Castopod-avhengigheter +- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): en Nginx-konfigurasjon for Castopod + +I tillegg krever Castopod en MySQL-kompatibel database. En Redis-database kan legges til som en cache-håndterer. + +## Støttede tagger + +- `devel` [unstable], siste utviklerutgave +- `beta` [stable], siste betautgave +- `1.x.x` [stable], spesifikk versjon (fra `1.0.0`) + +## Eksempelbruk + +1. Installer [docker](https://docs.docker.com/get-docker/) og [docker-compose](https://docs.docker.com/compose/install/) +2. Opprett en `docker-compose.yml`-fil med følgende innhold: + + ```yml + version: "3.7" + + services: + app: + image: castopod/castopod:latest + container_name: "castopod-app" + volumes: + - castopod-media:/var/www/castopod/public/media + environment: + MYSQL_DATABASE: castopod + MYSQL_USER: castopod + MYSQL_PASSWORD: changeme + CP_BASEURL: "https://castopod.example.com" + CP_ANALYTICS_SALT: changeme + CP_CACHE_HANDLER: redis + CP_REDIS_HOST: redis + networks: + - castopod-app + - castopod-db + ports: + - 8000:8000 + restart: unless-stopped + + mariadb: + image: mariadb:10.5 + container_name: "castopod-mariadb" + networks: + - castopod-db + volumes: + - castopod-db:/var/lib/mysql + environment: + MYSQL_ROOT_PASSWORD: changeme + MYSQL_DATABASE: castopod + MYSQL_USER: castopod + MYSQL_PASSWORD: changeme + restart: unless-stopped + + redis: + image: redis:7.0-alpine + container_name: "castopod-redis" + volumes: + - castopod-cache:/data + networks: + - castopod-app + + volumes: + castopod-media: + castopod-db: + castopod-cache: + + networks: + castopod-app: + castopod-db: + ``` + + Du må tilpasse noen variabler etter dine behov (f.eks. `CP_BASEURL`, `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` og `CP_ANALYTICS_SALT`). + +3. Sett opp en revers proxy for TLS (SSL/HTTPS) + + TLS er påkrevd for at ActivityPub skal fungere. Dette kan enkelt håndteres av en revers proxy, for eksempel med [Caddy](https://caddyserver.com/): + + ``` + #castopod + castopod.example.com { + reverse_proxy localhost:8000 + } + ``` + +4. Kjør `docker-compose up -d`, og vent til konfigurasjonen av Castopod er ferdig på `https://castopod.example.com/cp-install`! + +5. Du er klar! Begynn å podcaste! 🎙️🚀 + +## Miljøvariabler + +- **castopod/castopod** og **castopod/app** + + | Variabelnavn | Type (`default`) | Standardverdi | + | ------------------------------- | ----------------------- | --------------- | + | **`CP_BASEURL`** | streng | `undefined` | + | **`CP_MEDIA_BASEURL`** | ?streng | `CP_BASEURL` | + | **`CP_ADMIN_GATEWAY`** | ?streng | `"cp-admin"` | + | **`CP_AUTH_GATEWAY`** | ?streng | `"cp-auth"` | + | **`CP_ANALYTICS_SALT`** | streng | `undefined` | + | **`CP_DATABASE_HOSTNAME`** | ?streng | `"mariadb"` | + | **`CP_DATABASE_NAME`** | ?streng | `MYSQL_DATABASE`| + | **`CP_DATABASE_USERNAME`** | ?streng | `MYSQL_USER` | + | **`CP_DATABASE_PASSWORD`** | ?streng | `MYSQL_PASSWORD`| + | **`CP_DATABASE_PREFIX`** | ?streng | `"cp_"` | + | **`CP_CACHE_HANDLER`** | [`"file"` eller `"redis"`] | `"file"` | + | **`CP_REDIS_HOST`** | ?streng | `"localhost"` | + | **`CP_REDIS_PASSWORD`** | ?streng | `null` | + | **`CP_REDIS_PORT`** | ?nummer | `6379` | + | **`CP_REDIS_DATABASE`** | ?nummer | `0` | + | **`CP_EMAIL_SMTP_HOST`** | ?streng | `undefined` | + | **`CP_EMAIL_FROM`** | ?streng | `undefined` | + | **`CP_EMAIL_SMTP_USERNAME`** | ?streng | `"localhost"` | + | **`CP_EMAIL_SMTP_PASSWORD`** | ?streng | `null` | + | **`CP_EMAIL_SMTP_PORT`** | ?nummer | `25` | + | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` eller `"ssl"`] | `"tls"` | + | **`CP_ENABLE_2FA`** | ?boolean | `undefined` | + | **`CP_MEDIA_FILE_MANAGER`** | ?streng | `undefined` | + | **`CP_MEDIA_S3_ENDPOINT`** | ?streng | `undefined` | + | **`CP_MEDIA_S3_KEY`** | ?streng | `undefined` | + | **`CP_MEDIA_S3_SECRET`** | ?streng | `undefined` | + | **`CP_MEDIA_S3_REGION`** | ?streng | `undefined` | + | **`CP_MEDIA_S3_BUCKET`** | ?streng | `undefined` | + | **`CP_MEDIA_S3_PROTOCOL`** | ?nummer | `undefined` | + | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` | + | **`CP_MEDIA_S3_KEY_PREFIX`** | ?streng | `undefined` | + | **`CP_DISABLE_HTTPS`** | ?[`0` eller `1`] | `undefined` | + | **`CP_MAX_BODY_SIZE`** | ?nummer (med suffiks) | `512M` | + | **`CP_PHP_MEMORY_LIMIT`** | ?nummer (med suffiks) | `512M` | + | **`CP_TIMEOUT`** | ?nummer | `900` | + +- **castopod/web-server** + + | Variabelnavn | Type | Standardverdi | + | -------------------- | --------------------- | --------------- | + | **`CP_APP_HOSTNAME`**| ?streng | `"app"` | + | **`CP_MAX_BODY_SIZE`** | ?nummer (med suffiks) | `512M` | + | **`CP_TIMEOUT`** | ?nummer | `900` | \ No newline at end of file diff --git a/docs/src/nn/getting-started/install.md b/docs/src/nn/getting-started/install.md new file mode 100644 index 00000000..616ecb2c --- /dev/null +++ b/docs/src/nn/getting-started/install.md @@ -0,0 +1,127 @@ +--- +title: Installering +sidebarDepth: 3 +--- + +# Korleis installere Castopod? + +Castopod er designa for å vere enkel å installere. Uansett om du bruker +dedikert eller delt hosting, kan du installere det på dei fleste +webserverar som støttar PHP-MySQL. + +::: tip Merk + +Vi har offisielle Docker-bilete for Castopod! + +Hvis du vil bruke Docker, kan du hoppe over dette avsnittet og gå direkte +til [Docker-dokumentasjonen](./docker.md) for Castopod. + +::: + +## Førehandskrav + +- PHP v8.1 eller nyare +- MySQL versjon 5.7 eller nyare eller MariaDB versjon 10.2 eller nyare +- Støtte for HTTPS +- Eit [ntp-synced clock](https://wiki.debian.org/NTP) for å validere innkomande forespørsler til føderasjonen + +### PHP v8.1 eller nyare + +PHP-versjon 8.1 er naudsynt, med følgjande utvidingar installert: + +- [intl](https://www.php.net/manual/fr/intl.requirements.php) +- [libcurl](https://www.php.net/manual/fr/curl.requirements.php) +- [mbstring](https://www.php.net/manual/fr/mbstring.installation.php) +- [gd](https://www.php.net/manual/en/image.installation.php) med **JPEG**, + **PNG** og **WEBP** bibliotek. +- [exif](https://www.php.net/manual/fr/exif.installation.php) + +I tillegg bør du sjekke om følgjande utvidingar er aktivert i PHP: + +- json (aktivert som standard - ikkje slå av) +- xml (aktivert som standard - ikkje slå av) +- [mysqlnd](https://www.php.net/manual/fr/mysqlnd.install.php) + +### MySQL-kompatibel databaseserver + +> Vi anbefalar å bruke [MariaDB](https://mariadb.org). + +::: warning Merk + +Castopod fungerer berre med MySQL-databaseserverar versjon 5.7 eller nyare. +Tidlegare versjonar av MySQL, som 5.6 (med støttetid som enda 5. februar 2021), vil ikkje fungere. + +::: + +Du vil trenge følgjande informasjon for å fullføre installasjonsprosessen: +vertsnamn for serveren, databasenamn, brukarnamn og passord. Hvis du +ikke har denne informasjonen, bør du kontakte administratoren din. + +#### Tilgangsrettar + +Brukaren må ha minst desse tilgangsrettane for databasen for at Castopod +skal fungere: `CREATE`, `ALTER`, `DELETE`, `EXECUTE`, +`INDEX`,`INSERT`, `SELECT`, `UPDATE`,`REFERENCES`, `CREATE VIEW`. + +### (Fakultativt) FFmpeg v4.1.8 eller nyare for videoklipp + +[FFmpeg](https://www.ffmpeg.org/) versjon 4.1.8 eller nyare er nødvendig +hvis du ønsker å generere videoklipp. Følgjande utvidingar må vere installert: + +- biblioteket **FreeType 2** for + [gd](https://www.php.net/manual/en/image.installation.php). + +### (Fakultativt) Andre anbefalingar + +- Redis for betre ytelse på cache. +- CDN for lagring av statiske filer og betre ytelse. +- E-postteneste for mista passord. + +## Installasjonsinstruksjonar + +### Førehandskrav + +0. Skaff deg ein nettserver med [førehandskrava](#prerequisites) installert. +1. Opprett ein MySQL-databaseserver for Castopod, med ein brukar som har rettar +til å opprette og endre (for meir informasjon, sjå [MySQL-kompatibel databaseserver](#mysql-kompatible-databaser)). +2. Aktiver HTTPS på domenet ditt med eit _SSL-sertifikat_. +3. Last ned og pakk ut den siste versjonen av [Castopod-pakken](https://castopod.org/) + på nettserveren hvis du ikkje allereie har gjort det. + - ⚠️ Sørg for at rotmappaen til nettserverdokumentet peiker på undermappa + `public/` i `castopod`-mappa. +4. Legg til **cron-oppdrag** på nettserveren din for ulike bakgrunnsprosessar + (bytt ut filstiane etter behov): + + ```bash + * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1 + ``` + + **Merk** - Hvis du ikkje legg til dette cron-oppdraget, vil følgjande Castopod-funksjonar + ikkje fungere: + + - Importere en podkast frå ein eksisterande RSS-feed + - Kringkaste sosiale aktivitetar til følgjarane dine i fediverse + - Sende episodar til open hubs ved å bruke + [WebSub](https://en.wikipedia.org/wiki/WebSub) + - Generere videoklipp - + [krever FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips) + +### (Føreslått metode) Installasjonsveiviser + +1. Kjør Castopod-installasjonsskriptet ved å gå til installasjonsveiviser-sida + (`https://domain_name.com/cp-install`) i nettlesaren din. +2. Følg instruksjonane som blir vist. +3. Kom igang med podkasting! + +:::info Merk + +Installasjonsskriptet opprettar ei `.env`-fil i rotmappa til pakken. Hvis du +ikkje kan bruke installasjonsveiviseren, kan du opprette og redigere +`.env`-fila manuelt ved å bruke `.env.example`-fila som guide. + +::: + +### E-post/SMTP-oppsett + +E-postoppsett er nødvendig for at nokre funksjonar skal fungere skikkeleg +(t.d. \ No newline at end of file diff --git a/docs/src/nn/getting-started/security.md b/docs/src/nn/getting-started/security.md new file mode 100644 index 00000000..30168526 --- /dev/null +++ b/docs/src/nn/getting-started/security.md @@ -0,0 +1,24 @@ +--- +title: Tryggleik +--- + +# Tryggleiksspørsmål + +Castopod er utvikla på [CodeIgniter4](https://codeigniter.com/), eit PHP-rammeverk +som oppfordrar til [gode tryggleikspraksisar](https://codeigniter.com/user_guide/concepts/security.html). + +For å sikre installasjonen og unngå skadelege angrep, tilråder vi at du oppdaterer +tilgangsretten til Castopod-filene etter installasjon og kvar oppdatering (og unngår +rettighetsproblem med filer): + +- Mappa `writable/` skal vere tilgjengeleg for **lesing** og **skriving**. +- Mappa `public/media/` skal vere tilgjengeleg for **lesing** og **skriving**. +- Alle andre filer skal vere tilgjengelege for **berre lesing**. + +Til dømes, om du brukar Apache eller NGINX med Ubuntu, kan du køyre følgande kommandoar: + +```bash +sudo chown -R root:root /path/to/castopod +sudo chown -R www-data:www-data /path/to/castopod/writable +sudo chown -R www-data:www-data /path/to/castopod/public/media +``` \ No newline at end of file diff --git a/docs/src/nn/getting-started/update.md b/docs/src/nn/getting-started/update.md new file mode 100644 index 00000000..efb43d50 --- /dev/null +++ b/docs/src/nn/getting-started/update.md @@ -0,0 +1,101 @@ +--- +title: Oppdatering +sidebarDepth: 3 +--- + +# Hvordan installere Castopod? + +Etter at du har installert Castopod, kan du oppdatere instansen din til den +nyeste versjonen for å dra nytte av de siste funksjonene ✨, feilrettinger 🐛, og ytelsesforbedringer ⚡. + +## Oppdateringsinstruksjoner + +0. ⚠️ Før du oppdaterer, anbefaler vi sterkt at du sikkerhetskopierer + Castopod-filene dine og databasen din. + + - se + [Skal jeg ta en sikkerhetskopi før oppdatering?](#skal-jeg-ta-en-sikkerhetskopi-før-oppdatering) + +1. Gå til + [utgivelser-siden](https://code.castopod.org/adaures/castopod/-/releases) og + sjekk om instansen din er oppdatert med den nyeste versjonen av Castopod + + - se + [Hvor finner jeg min Castopod-versjon?](#hvor-finner-jeg-min-castopod-versjon) + +2. Last ned den nyeste utgaven av `Castopod-pakken`, du kan velge mellom `zip` eller `tar.gz`-arkiver + + - ⚠️ Pass på at du laster ned Castopod-pakken og **IKKE** kildekoden + - Merk at du også kan laste ned den nyeste pakken fra + [castopod.org](https://castopod.org/) + +3. På serveren din: + + - Slett alle filer unntatt `.env` og `public/media` + - Kopier de nye filene fra nedlastingspakken til serveren din + + ::: info Tips + + Du må kanskje sette filrettigheter på nytt som gjort under installasjonsprosessen. Sjekk + [Sikkerhetstiltak](./security.md). + + ::: + +4. Oppdater databasens skjema fra din `Castopod-admin`> `About`-side eller ved å kjøre: + + ```bash + php spark castopod:database-update + ``` + +5. Tøm bufferen fra din `Castopod-admin`> `Innstillinger`> `Generelt` > `Rydd opp`. +6. ✨Nå kan du nyte den nye instansen din, du er ferdig! + +::: info Tips + +Versjonene kan komme med ytterligere oppdateringsinstruksjoner (se +[utgivelsesmerknadene](https://code.castopod.org/adaures/castopod/-/releases)). + +- se + [Jeg har ikke oppdatert instansen min på lenge... Hva bør jeg gjøre?](#jeg-har-ikke-oppdatert-instansen-min-på-lenge-hva-bør-jeg-gjøre) + +::: + +## Fullstendig automatiserte oppdateringer + +> Kommer snart... 👀 + +## Ofte Stilte Spørsmål (FAQ) + +### Hvor finner jeg min Castopod-versjon? + +Gå til adminpanelet i Castopod, versjonen vises nederst til venstre. + +Du kan også finne versjonen i applikasjonen +`> Konfigurasjon > Constantes.php`-mappen. + +### Jeg har ikke oppdatert instansen min på lenge... Hva bør jeg gjøre? + +Ingen problem! Du trenger bare å få den nyeste versjonen som beskrevet +ovenfor. Når du kjører oppdateringsinstruksjonene (steg 4), kjør dem +sekvensielt fra den eldste til den nyeste. + +> Du bør sikkerhetskopiere instansen din basert på datoen for din siste Castopod-oppdatering. + +For eksempel, hvis du er på `v1.0.0-alpha.42` og ønsker å oppdatere til +`v1.0.0-beta.1`: + +0. (sterkt anbefalt) Ta en sikkerhetskopi av filene dine og databasen din. + +1. Last ned den nyeste versjonen, overskriv filene dine mens du beholder + `.env` og `public/media`. + +2. Kjør oppdateringsinstruksjonene en etter en (fra eldste til nyeste). + +3. ✨Din nye instans er klar! + +### Må jeg ta sikkerhetskopi før jeg oppdaterer? + +Vi anbefaler at du gjør det, slik at du ikke mister noe hvis noe går galt! + +Generelt sett anbefaler vi å ta regelmessige sikkerhetskopier av +Castopod-filene og databasen din for å unngå å miste noe... \ No newline at end of file diff --git a/docs/src/nn/index.md b/docs/src/nn/index.md new file mode 100644 index 00000000..71d4a2fa --- /dev/null +++ b/docs/src/nn/index.md @@ -0,0 +1,186 @@ +--- +sidebarDepth: 2 +--- + +# Velkommen 👋 + +[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![stars-badge]][stars] + +Castopod er en gratis og åpen programvare for hosting av podcaster, designet for podcastere som ønsker å utveksle og samhandle med sitt publikum. + +Castopod er enkel å installere og er bygget med [CodeIgniter4](https://codeigniter.com/), et kraftig PHP-rammeverk med svært liten størrelse. + + + +## Funksjoner + +- 🌱  GPLv3-lisensiert gratis og åpen programvare +- 🔐  fokus på data-suverenitet: innholdet, publikummet og statistikken tilhører deg og bare deg +- 🪄  Mange funksjoner fra Podcasting 2.0: GUID, låsing, transkripsjoner, finansiering, kapitler, geolokalisering, gjester, lydklipp osv. +- 💬  Innebygd sosialt nettverk: + - 🚀  Castopod er en del av Fediverse, et desentralisert sosialt nettverk + - ❤️  Opprett innlegg, del, favoritt og kommenter episoder +- 📈  Innebygd statistikk: + - ⚖️  GDPR / CCPA / LGPD-kompatibel + - 🪙  IABv2-tilpasset publikumsanalyse + - 🏡  Innebygde statistikker, ingen mellomtjeneste +- 📢  Innebygd markedsføringsverktøy: + - ✅  Klar for søkemotoroptimalisering (åpne-grafikk metatagger, JSON-LD, osv.) + - 📱  Progressive Web App: Installer som en selvstendig app + - 🎨  Tilpassbare fargetemaer + - 🎬  Generer delbare videoklipp fra episoder + - 🔉  Generer lydklipp + - ▶️  Bygg inn episodene dine på hvilken som helst nettside +- 💸  Monetisering: + - 🔗  Finansieringslenker + - 📲  «lytt-for-å-klikke»-reklame + - 🤝  value4value / WebMonetization + - 💎  Premium-podcaster +- 📡  Publiser episodene dine overalt med RSS: + - 📱  På alle indekser og apper: Podcast Index, Apple Podcasts, Spotify, Google Podcasts, Deezer, Podcast Addict, Podfriend osv. + - ⚡  Send episodene dine øyeblikkelig med WebSub +- 📥  Importer podcaster: Flytt den eksisterende podcasten din til Castopod +- 📤  Flytt podcasten din til en annen vert +- 🔀  Flere leietakere: Vert så mange podcaster du vil +- 👥  Multibrukersystem: Legg til bidragsytere og definer rollene deres +- 🌎  i18n-støtte: Oversatt til engelsk, fransk, polsk, tysk, portugisisk, brasiliansk og spansk... og [flere i fremtiden](https://translate.castopod.org)! + +## Hvorfor Castopod? + +Podcast-økosystemet er desentralisert av natur: Du kan opprette en podcast som en RSS-fil, publisere den på nettet og dele den overalt på nettet. + +Det er faktisk den eneste medietypen som har forblitt slik i lang tid. + +Mens bruken endrer seg, blir det stadig flere som lager podcaster: Enten det er skapere som finner nye måter å dele ideene sine på, eller lyttere som søker bedre innhold. + +Med den økende populariteten til podcasting, prøver noen selskaper å gjøre den til et mer kontrollert og sentralisert medium. + +Castopod ble opprettet for å tilby et åpent og bærekraftig alternativ til hosting av podcaster, og fremme desentralisering for å sikre at kreativiteten til podcasteren kan utfolde seg. + +Dette prosjektet blir drevet av det åpne kildemiljøet, spesielt av Fediverse og Podcasting 2.0-bevegelsene. + +## Sammenligning med andre løsninger + +Vi mener at en løsning ikke nødvendigvis passer alle. Det avhenger i stor grad av dine behov. Så her er sammenligninger med andre verktøy som kan hjelpe deg med å avgjøre om Castopod passer for deg. + +### Castopod vs Wordpress + +Castopod blir ofte referert til som "WordPress for podcaster" på grunn av likhetene mellom de to. På noen måter er dette sant. Og faktisk ble Castopod sterkt inspirert av WordPress-økosystemet, da vi så hvor enkelt det var å adoptere det fra fellesskapet og antall nettsteder som bruker det. + +Akkurat som WordPress, er Castopod gratis og åpen programvare, bygget med PHP og MySQL og kan enkelt installeres på de fleste webservere. + +WordPress er en flott måte å lage nettsiden din på og utvide den med utvidelser for å få det du ønsker. Det er et fullstendig CMS som hjelper deg med å få all type nettsider på nett. + +På den annen side er Castopod ment å adressere podcasterens spesifikke behov, med fokus på podcasting, og ingenting annet. Du trenger ikke en eneste utvidelse for å komme i gang med din podcasting reise. + +Dette gir mulighet for å optimalisere prosessene som er spesifikke for podcasting: fra opprettelsen av podcaster og publisering av nye episoder helt til markedsføring og analyse. + +Avhengig av behovene dine kan WordPress og Castopod til og med leve side om side, da de deler samme krav! + +### Castopod vs Funkwhale + +Funkwhale er en selvhostet, moderne gratis og åpen musikkserver. Akkurat som Castopod er Funkwhale i Fediverse, et desentralisert sosialt nettverk som tillater samhandling mellom dem. + +Funkwhale ble opprinnelig bygget rundt musikk, og senere, da prosjektet utviklet seg, ble evnen til å hoste podcaster introdusert. + +I motsetning til Funkwhale, er Castopod utelukkende bygget og designet med tanke på podcasting. Dette gjør det enklere å implementere funksjoner som er relatert til podcasting, som funksjoner som er knyttet til podcasting 2.0 (transkripsjoner, kapitler, steder, personer, osv.). + +Derfor bør du sannsynligvis bruke Funkwhale hvis du vil hoste musikken din, og Castopod hvis du vil hoste podcastene dine. + +### Castopod vs Andre vertstjenester for podcaster + +Det finnes mange løsninger for hosting av podcaster, enkelte av dem er virkelig gode og [mange](https://podcastindex.org/apps) av dem hopper på Podcasting 2.0-toget, akkurat som Castopod! + +Hver av disse løsningene er forskjellige fra hverandre, og du kan sammenligne dem ved å se på listen over funksjoner. + +Det sagt, er det to hovedforskjeller med andre podcasting-løsninger: + +- Castopod kan være selvhostet og er den eneste løsningen som lar deg ha full kontroll over det du produserer. Samtidig som det er en åpen kildekode-løsning kan du endre den slik du vil. + +- Castopod er den eneste løsningen som i dag inneholder både en desentralisert sosial plattform med ActivityPub og funksjoner fra "Podcasting 2.0", og reduserer dermed avstanden mellom dem. + +## Bli med oss + +Synes du Castopod er flott og vil hjelpe til? Ta en titt på følgende dokumentasjon for å komme i gang. + +### Verktøyetikk + +Castopod har vedtatt en Verktøyetisk som vi forventer at prosjektdeltakere følger. Vennligst les +[Verktøyetiskhåndboken](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md) +slik at du kan forstå hvilke handlinger som vil bli tolerert og ikke tolerert. + +### Bidragsveiledning + +Les [veiledningen vår for bidrag](./contributing/guidelines.md) for å lære mer om vår utviklingsprosess, hvordan du foreslår feilrettinger og forbedringer, og hvordan du bygger og tester endringene dine i Castopod. + +## Bidragsytere ✨ + +Takk til disse fantastiske menneskene ([disse emojiene betyr forskjellige ting](https://allcontributors.org/docs/nb/emoji-key)): + + + + + + + + + + + + + + + + +
Yassine Doghri
Yassine Doghri

💻 🐛 📖 👀 🚧 🖋️ 🎨 ️️️️️♿️ 🌍 💬 🧑‍🏫 🚇 🤔 📆 📝
Benjamin Bellamy
Benjamin Bellamy

💻 🐛 👀 🖋️ 🌍 💬 🚇 🤔 📝 📆 📢
Ola Hneini
Ola Hneini

💻 👀 📖 🚧 💬 🤔
Arnþór L. Emilsson
Arnþór L. Emilsson

🤔
Ryugasaki Yuno
Ryugasaki Yuno

🐛 💬 🚇
Ugo Pengaréri
Ugo Pengaréri

🌍 💬 🤔
Onder Ceylan
Onder Ceylan

💻
+ + + + + + +Dette prosjektet følger spesifikasjonen for +[all-contributors](https://github.com/all-contributors/all-contributors). +Alle typer bidrag er velkomne! + +## Kontakte Oss + +Du kan nå oss for hjelp eller stille spørsmål du har på: + +- [Discord](https://castopod.org/discord) (for sanntidssamtaler med utviklere og samfunn) +- [Problemer](https://code.castopod.org/adaures/castopod/issues) (for forespørsler om nye funksjoner eller feilrapporter) + +Alternativt kan du følge oss på sosiale medieplattformer for å få nyheter om Castopod: + +- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon-instans) +- [Twitter](https://twitter.com/castopod) + +## Sponsorer + +Den kontinuerlige utviklingen av Castopod er mulig med støtte fra bidragsytere. Hvis du vil hjelpe til, kan du vurdere å [sponsere utviklingen av Castopod](https://opencollective.com/castopod/contribute). + +
+ Banner for Adaures + NLnet banner +
+ +## Lisens + +[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/) + +Opphavsrett © 2020-nå, [Ad Aures](https://adaures.com/). +https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release +https://img.shields.io/github/license/ad-aures/castopod?color=blue +https://img.shields.io/badge/contributions-welcome-brightgreen.svg +https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg +https://img.shields.io/github/stars/ad-aures/castopod?style=social + +[release]: https://code.castopod.org/adaures/castopod/-/releases +[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md +[contributions]: https://code.castopod.org/adaures/castopod/-/issues +[semantic-release]: https://github.com/semantic-release/semantic-release +[discord]: https://castopod.org/discord +[stars]: https://github.com/ad-aures/castopod/stargazers +[crowdin]: https://translate.castopod.org/project/castopod \ No newline at end of file diff --git a/docs/src/pl/contributing/_category_.json b/docs/src/pl/contributing/_category_.json index e12f1ce5..9d6d1105 100644 --- a/docs/src/pl/contributing/_category_.json +++ b/docs/src/pl/contributing/_category_.json @@ -1,4 +1,4 @@ { - "label": "Contributing", + "label": "Współpraca", "position": 3 -} +} \ No newline at end of file diff --git a/docs/src/pl/contributing/guidelines.md b/docs/src/pl/contributing/guidelines.md index 1a53c89e..4fde4983 100644 --- a/docs/src/pl/contributing/guidelines.md +++ b/docs/src/pl/contributing/guidelines.md @@ -1,154 +1,113 @@ --- -title: Guidelines +title: Wytyczne --- -# Contributing to Castopod +# Współtworzenie Castopod -Love Castopod and want to help? Thanks so much, there's something to do for -everybody! +Kochasz Castopod i chcesz pomóc? Bardzo dziękujemy, jest wiele do zrobienia dla każdego! -Please take a moment to review this document in order to make the contribution -process easy and effective for everyone involved. +Prosimy o chwilę czasu, aby zapoznać się z tym dokumentem, aby proces współtworzenia był łatwy i skuteczny dla wszystkich zaangażowanych. -Following these guidelines helps to communicate that you respect the time of the -developers managing and developing this open source project. In return, they -should reciprocate that respect in addressing your issue or assessing patches -and features. +Przestrzeganie tych wytycznych pomaga w komunikacji, która świadczy o szacunku dla czasu programistów zarządzających i rozwijających ten projekt open source. W zamian, powinni oni odwzajemnić ten szacunek, odpowiadając na zgłoszone problemy lub oceniając poprawki i nowe funkcje. -::: info Note +::: info Notka -**Any** contribution made on a repository other than -[the original repository](https://code.castopod.org/adaures/castopod) will not -be accepted. +**Każdy** wkład na repozytorium innym niż [oryginalne repozytorium](https://code.castopod.org/adaures/castopod) nie zostanie przyjęty. ::: -## Using the issue tracker +## Korzystanie z systemu śledzenia problemów -The [issue tracker](https://code.castopod.org/adaures/castopod/-/issues) is the -preferred channel for [bug reports](#bug-reports), -[features requests](#feature-requests) and -[submitting pull requests](#pull-requests). +[System śledzenia problemów](https://code.castopod.org/adaures/castopod/-/issues) jest preferowanym kanałem do zgłaszania [błędów](#zgłaszanie-błędów), [propozycji funkcji](#propozycje-funkcji) i [przesyłania żądań wciągnięcia zmian](#żądania-wciągnięcia-zmian). -## ⚠️ Security issues and vulnerabilities +## ⚠️ Problemy dotyczące bezpieczeństwa i luki -If you encounter any security issue or vulnerability in the Castopod source, -please contact us directly by email at -[security@castopod.org](mailto:security@castopod.org) +Jeśli napotkasz jakiekolwiek problemy dotyczące bezpieczeństwa lub luki w kodzie źródłowym Castopoda, prosimy o bezpośredni kontakt z nami drogą mailową na adres [security@castopod.org](mailto:security@castopod.org). -## Bug reports +## Zgłaszanie błędów -A bug is a _demonstrable problem_ that is caused by the code in the repository. -Good bug reports are extremely helpful - thank you! +Błąd to _widoczny problem_, który jest spowodowany kodem w repozytorium. Dobre zgłoszenia błędów są niezwykle pomocne - bardzo dziękujemy! -Guidelines for bug reports: +Wytyczne dotyczące zgłaszania błędów: -1. **Use the issue search** — check if the issue has already been - reported. +1. **Skorzystaj z wyszukiwarki problemów** — sprawdź, czy problem został już zgłoszony. -2. **Check if the issue has been fixed** — try to reproduce it using the - latest `main` branch in the repository. +2. **Sprawdź, czy problem został naprawiony** — spróbuj odtworzyć go korzystając z najnowszej gałęzi `main` w repozytorium. -3. **Isolate the problem** — ideally create a - [reduced test case](https://css-tricks.com/reduced-test-cases/) and a live - example. +3. **Izoluj problem** — idealnie stwórz [testową wersję redukowaną](https://css-tricks.com/reduced-test-cases/) i przykład na żywo. -A good bug report shouldn't leave others needing to chase you up for more -information. Please try to be as detailed as possible in your report. What is -your environment? What steps will reproduce the issue? What browser(s) and OS -experience the problem? What would you expect to be the outcome? All these -details will help people to fix any potential bugs. +Dobre zgłoszenie błędu nie powinno wymagać dodatkowych próśb o więcej informacji. Prosimy, staraj się być jak najbardziej szczegółowy w zgłoszeniu. Jaka jest Twoja środowisku? Jakie kroki powodują wystąpienie problemu? Jakie przeglądarki i systemy operacyjne go doświadczają? Jaki jest oczekiwany rezultat? Wszystkie te szczegóły pomogą innym osobom w naprawieniu potencjalnych błędów. -> [Issue templates](https://docs.gitlab.com/ee/user/project/description_templates.html#using-the-templates) -> have been created for this project. You may use them to help you follow those -> guidelines. +>[Szablony zgłoszeń](https://docs.gitlab.com/ee/user/project/description_templates.html#using-the-templates) zostały stworzone dla tego projektu. Możesz z nich skorzystać, aby ułatwić przestrzeganie tych wytycznych. -## Feature requests +## Propozycje funkcji -Feature requests are welcome. But take a moment to find out whether your idea -fits with the scope and aims of the project. It's up to _you_ to make a strong -case to convince the project's developers of the merits of this feature. Please -provide as much detail and context as possible. +Propozycje funkcji są mile widziane. Jednak zastanów się przez chwilę, czy Twój pomysł pasuje do zakresu i celów projektu. To od _ciebie_ zależy, aby przekonać programistów projektu o wartości tej funkcji. Proszę dostarcz jak najwięcej szczegółów i kontekstu. -## Pull requests +## Żądania wciągnięcia zmian -Good pull requests - patches, improvements, new features - are a fantastic help. -They should remain focused in scope and avoid containing unrelated commits. +Dobre żądania wciągnięcia zmian – poprawki, ulepszenia, nowe funkcje, to fantastyczna pomoc. Powinny one pozostać skoncentrowane i unikać zawierania niepowiązanych zmian. -**Please ask first** before embarking on any significant pull request (e.g. -implementing features, refactoring code, porting to a different language), -otherwise you risk spending a lot of time working on something that the -project's developers might not want to merge into the project. +**Prosimy o zapytanie** przed przystąpieniem do znacznego żądania wciągnięcia zmian (np. implementacja funkcji, refaktoring kodu, przenoszenie do innego języka), w przeciwnym razie ryzykujesz, że spędzisz dużo czasu na czymś, co programiści projektu mogą nie chcieć scalić. -Please adhere to the coding conventions used throughout a project (indentation, -accurate comments, etc.) and any other requirements (such as test coverage). +Prosimy o przestrzeganie konwencji kodowania stosowanych w całym projekcie (wcięcia, dokładne komentarze itp.) oraz innych wymagań (takich jak pokrycie testami). -Adhering to the following process is the best way to get your work included in -the project: +Przestrzeganie poniższego procesu to najlepszy sposób na uwzględnienie Twojej pracy w projekcie: -1. [Fork](https://docs.gitlab.com/ee/gitlab-basics/fork-project.html) the - project, clone your fork, and configure the remotes: +1. [Sforkuj](https://docs.gitlab.com/ee/gitlab-basics/fork-project.html) projekt, sklonuj swoje repozytorium (`fork`) i skonfiguruj zdalne repozytoria: ```bash -# Clone your fork of the repo into the current directory -git clone https://code.castopod.org//castopod.git +# Sklonuj swoje repository (`fork`) do obecnego katalogu +git clone https://code.castopod.org//castopod.git -# Navigate to the newly cloned directory +# Przejdź do nowo sklonowanego katalogu cd castopod -# Assign the original repo to a remote called "upstream" +# Przypisz oryginalne repozytorium do zdalnego o nazwie "upstream" git remote add upstream https://code.castopod.org/adaures/castopod.git ``` -2. If you cloned a while ago, get the latest changes from upstream: +2. Jeżeli sklonowałeś repozytorium jakiś czas temu, pobierz najnowsze zmiany ze zdalnego repozytorium: ```bash git checkout main git pull upstream main ``` -3. Create a new topic branch (off the `main` branch) to contain your feature, - change, or fix: +3. Utwórz nową gałąź tematyczną (od gałęzi `main`), która będzie zawierać Twoją funkcję, zmianę lub poprawkę: ```bash -git checkout -b +git checkout -b ``` -4. Commit your changes in logical chunks. Please adhere to these - [git commit message guidelines](https://conventionalcommits.org/) or your - code is unlikely be merged into the main project. Use Git's - [interactive rebase](https://help.github.com/articles/about-git-rebase/) - feature to tidy up your commits before making them public. +4. Zatwierdź swoje zmiany w logicznych częściach. Prosimy przestrzegać tych + [wytycznych dotyczących zatwierdzania zmian w systemie Git](https://conventionalcommits.org/) lub kod nie zostanie prawdopodobnie scalony z głównym projektem. Skorzystaj z funkcji + [przerywania interaktywnego w systemie Git](https://help.github.com/articles/about-git-rebase/) + w celu uporządkowania swoich zmian przed ich ujawnieniem publicznie. -5. Locally merge (or rebase) the upstream dev branch into your topic branch: +5. Lokalnie scal (lub przepisz historię) gałąź `dev` ze zdalnej gałęzi tematycznej: ```bash git pull [--rebase] upstream main ``` -6. Push your topic branch up to your fork: +6. Wypchnij swoją gałąź tematyczną do swojego repozytorium (`fork`): ```bash -git push origin +git push origin ``` -7. [Open a Pull Request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html#new-merge-request-from-a-fork) - with a clear title and description. +7. [Otwórz żądanie wciągnięcia zmian](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html#new-merge-request-from-a-fork) + z wyraźnym tytułem i opisem. -**IMPORTANT**: By submitting a patch, you agree to allow the project owners to -license your work under the terms of the +**WAŻNE**: Przesyłając poprawkę, zgadzasz się na udostępnienie jej na licencji [GNU AGPLv3](https://code.castopod.org/adaures/castopod/-/blob/main/LICENSE). -## Collaborating guidelines +## Wytyczne współpracy -There are few basic rules to ensure high quality of the project: +Istnieje kilka podstawowych zasad, które należy przestrzegać, aby zapewnić wysoką jakość projektu: -- Before merging, a PR requires at least two approvals from the collaborators - unless it's an architectural change, a large feature, etc. If it is, then at - least 50% of the core team have to agree to merge it, with every team member - having a full veto right. (i.e. every single one can block any PR) -- A PR should remain open for at least two days before merging (does not apply - for trivial contributions like fixing a typo). This way everyone has enough - time to look into it. +- Przed scaleniem, żądanie wciągnięcia wymaga co najmniej dwóch zatwierdzeń od współpracowników, chyba że dotyczy to zmian architektonicznych, większej funkcji itp. Jeśli tak, to co najmniej 50% rdzenia zespołu musi zgodzić się na jego scalenie, przy pełnym prawie veta każdego członka zespołu. (tj. każdy może zablokować dowolne żądanie wciągnięcia zmian) +- Żądanie wciągnięcia zmian powinno pozostać otwarte przez co najmniej dwa dni przed scaleniem (nie dotyczy to trywialnych wkładów, takich jak poprawianie literówek). W ten sposób wszyscy mają wystarczająco dużo czasu, aby się przyjrzeć. -You are always welcome to discuss and propose improvements to this guideline. +Zawsze jesteś mile widziany, aby omawiać i proponować ulepszenia tych wytycznych. \ No newline at end of file diff --git a/docs/src/pl/contributing/setup-development.md b/docs/src/pl/contributing/setup-development.md index 7e42892a..e341fc3e 100644 --- a/docs/src/pl/contributing/setup-development.md +++ b/docs/src/pl/contributing/setup-development.md @@ -1,423 +1,115 @@ --- -title: Development setup +title: Konfiguracja środowiska programistycznego sidebarDepth: 3 --- -# Setup your development environment +# Skonfiguruj swoje środowisko programistyczne -## Introduction +## Wprowadzenie -Castopod is a web app based on the `php` framework -[CodeIgniter 4](https://codeigniter.com). +Castopod jest aplikacją internetową opartą na frameworku `php` [CodeIgniter 4](https://codeigniter.com). -We use [Docker](https://www.docker.com/) quickly setup a dev environment. A -`docker-compose.yml` and `Dockerfile` are included in the project's root folder -to help you kickstart your contribution. +Używamy [Dockera](https://www.docker.com/), aby szybko skonfigurować środowisko deweloperskie. W projekcie w folderze głównym znajdziesz pliki `docker-compose.yml` i `Dockerfile`, które pomogą Ci rozpocząć pracę nad projektem. -> You don't need any prior knowledge of Docker to follow the next steps. -> However, if you wish to use your own environment, feel free to do so! +> Nie potrzebujesz żadnej wiedzy na temat Dockera, aby przejść do następnych kroków. Jeśli jednak chcesz używać własnego środowiska, możesz to zrobić! -## Setup instructions +## Instrukcje konfiguracji -### 1. Pre-requisites +### 1. Wymagania wstępne -0. Install [docker](https://docs.docker.com/get-docker). +0. Zainstaluj [dockera](https://docs.docker.com/get-docker). -1. Clone Castopod project by running: +1. Sklonuj projekt Castopod, wykonując polecenie: - ```bash - git clone https://code.castopod.org/adaures/castopod.git - ``` + ``` + git clone https://code.castopod.org/adaures/castopod.git + ``` -2. Create a `.env` file with the minimum required config to connect the app to - the database and use redis as a cache handler: +2. Utwórz plik `.env` z minimalną wymaganą konfiguracją, aby połączyć aplikację z bazą danych i skonfigurować Redis jako obsługę pamięci podręcznej: - ```ini - CI_ENVIRONMENT="development" - # If set to development, you must run `npm run dev` to start the static assets server - vite.environment="development" + ``` + CI_ENVIRONMENT="development" + # Jeśli ustawione na development, należy uruchomić `npm run dev`, aby uruchomić serwer statycznych zasobów + vite.environment="development" - # By default, this is set to true in the app config. - # For development, this must be set to false as it is - # on a local environment - app.forceGlobalSecureRequests=false + # Domyślnie jest to ustawione na true w konfiguracji aplikacji. + # Dla środowiska deweloperskiego należy ustawić to na false, jak na lokalnym środowisku + app.forceGlobalSecureRequests=false - app.baseURL="http://localhost:8080/" - media.baseURL="http://localhost:8080/" + app.baseURL="http://localhost:8080/" + media.baseURL="http://localhost:8080/" - admin.gateway="cp-admin" - auth.gateway="cp-auth" + admin.gateway="cp-admin" + auth.gateway="cp-auth" - database.default.hostname="mariadb" - database.default.database="castopod" - database.default.username="castopod" - database.default.password="castopod" + database.default.hostname="mariadb" + database.default.database="castopod" + database.default.username="castopod" + database.default.password="castopod" - cache.handler="redis" - cache.redis.host = "redis" + cache.handler="redis" + cache.redis.host = "redis" - # You may not want to use redis as your cache handler - # Comment/remove the two lines above and uncomment - # the next line for file caching. - #cache.handler="file" - ``` + # Możesz nie chcieć używać Redis jako obsługi pamięci podręcznej + # Wykomentuj/usuń dwie linie powyżej i odkomentuj + # następną linię dla pamięci podręcznej plikowej. + #cache.handler="file" + ``` - > _NB._ You can tweak your environment by setting more environment variables - > in your custom `.env` file. See the `env` for examples or the - > [CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html) - > for more info. + > _NB._ Możesz dostosować swoje środowisko, ustawiając więcej zmiennych środowiskowych w swoim niestandardowym pliku `.env`. Zobacz `env` dla przykładów lub [Przewodnik użytkownika CodeIgniter4](https://codeigniter.com/user_guide/index.html) dla więcej informacji. -3. (for docker desktop) Add the repository you've cloned to docker desktop's - `Settings` > `Resources` > `File Sharing` +3. (dla Dockera Desktop) Dodaj sklonowany projekt do `Ustawienia` > `Zasoby` > `Udostępnianie plików` w Docker Desktop. -### 2. (recommended) Develop inside the app Container with VSCode +### 2. (zalecane) Twórz w kontenerze aplikacji w VSCode -If you're working in VSCode, you can take advantage of the `.devcontainer/` -folder. It defines a development environment (dev container) with preinstalled -requirements and VSCode extensions so you don't have to worry about them. All -required services will be loaded automagically! 🪄 +Jeśli pracujesz w VSCode, możesz skorzystać z folderu `.devcontainer/`. Definiuje on środowisko deweloperskie (kontener deweloperski) z zainstalowanymi wcześniej wymaganiami i rozszerzeniami VSCode, więc nie musisz się tym martwić. Wszystkie wymagane usługi zostaną załadowane automatycznie! 🪄 -1. Install the VSCode extension - [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) -2. `Ctrl/Cmd + Shift + P` > `Open in container` +1. Zainstaluj rozszerzenie VSCode [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers). +2. `Ctrl/Cmd + Shift + P` > `Otwórz w kontenerze`. - > The VSCode window will reload inside the dev container. Expect several - > minutes during first load as it is building all necessary services. + > Okno VSCode zostanie ponownie załadowane wewnątrz kontenera deweloperskiego. Oczekuj kilku minut podczas pierwszego ładowania, ponieważ budowane są wszystkie wymagane usługi. - **Note**: The dev container will start by running Castopod's php server. - During development, you will have to start [Vite](https://vitejs.dev)'s dev - server for compiling the typescript code and styles: + **Uwaga**: Kontener deweloperski uruchomi serwer php Castopoda. Podczas pracy deweloperskiej będziesz musiał uruchomić serwer deweloperski [Vite](https://vitejs.dev), aby skompilować kod TypeScript i style: - ```bash - # run Vite dev server - npm run dev - ``` + ```bash + # uruchom serwer deweloperski Vite + npm run dev + ``` - If there is any issue with the php server not running, you can restart them - using the following commands: + Jeśli wystąpi problem z nieuruchomieniem serwera php, możesz go ponownie uruchomić za pomocą poniższych poleceń: - ```bash - # run Castopod server - php spark serve - 0.0.0.0 - ``` + ```bash + # uruchom serwer Castopod + php spark serve - 0.0.0.0 + ``` -3. You're all set! 🎉 +3. Gotowe! 🎉 - You're now **inside the dev container**, you may use the VSCode console - (`Terminal` > `New Terminal`) to run any command: + Jesteś teraz wewnątrz kontenera deweloperskiego, możesz używać konsoli VSCode (`Terminal` > `Nowy terminal`), aby uruchomić dowolne polecenie: - ```bash - # PHP is installed - php -v + ```bash + # PHP jest zainstalowany + php -v - # Composer is installed - composer -V + # Composer jest zainstalowany + composer -V - # npm is installed - npm -v + # npm jest zainstalowane + npm -v - # git is installed - git version - ``` + # git jest zainstalowany + git version + ``` -For more info, see -[VSCode Remote Containers](https://code.visualstudio.com/docs/remote/containers) + Więcej informacji znajdziesz w dokumentacji [VSCode Remote Containers](https://code.visualstudio.com/docs/remote/containers). -### 3. Start hacking +### 3. Zacznij pracować -You're all set! Start working your magic by updating the project's files! Help -yourself to the -[CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html) for -more insights. +Gotowe! Zaczynamy tworzyć magię, aktualizując pliki projektu! Skorzystaj z [Przewodnika użytkownika CodeIgniter4](https://codeigniter.com/user_guide/index.html), aby uzyskać więcej informacji na ten temat. -To see your changes, go to: +Aby zobaczyć swoje zmiany, przejdź do: -- `http://localhost:8080/` for the Castopod app -- `http://localhost:8888/` for the phpmyadmin interface: +- `http://localhost:8080/` dla aplikacji Castopod +- `http://localhost:8888/` dla interfejsu phpmyadmin: - - username: **castopod** - - password: **castopod** - -### 2-alt. Develop outside the app container - -You do not wish to use the VSCode devcontainer? No problem! - -1. Start docker containers manually: - - Go to project's root folder and run: - - ```bash - # starts all services declared in docker-compose.yml file - # -d option starts the containers in the background - docker-compose up -d - - # See all running processes (you should see 3 processes running) - docker-compose ps - - # Alternatively, you can check all docker processes - docker ps -a - - ``` - - > The `docker-compose up -d` command will boot 4 containers in the - > background: - > - > - `castopod_app`: a php based container with Castopod requirements - > installed - > - `castopod_redis`: a [redis](https://redis.io/) database to handle queries - > and pages caching - > - `castopod_mariadb`: a [mariadb](https://mariadb.org/) server for - > persistent data - > - `castopod_phpmyadmin`: a phpmyadmin server to visualize the mariadb - > database. - -2. Run any command inside the containers by prefixing them with - `docker-compose run --rm app`: - - ```bash - # use PHP - docker-compose run --rm app php -v - - # use Composer - docker-compose run --rm app composer -V - - # use npm - docker-compose run --rm app npm -v - - # use git - docker-compose run --rm app git version - ``` - ---- - -## Going Further - -### Install Castopod's dependencies - -1. Install php dependencies with [Composer](https://getcomposer.org/) - - ```bash - composer install - ``` - - ::: info Note - - The php dependencies aren't included in the repository. Composer will check - the `composer.json` and `composer.lock` files to download the packages with - the right versions. The dependencies will live under the `vendor/` folder. - For more info, check out the - [Composer documentation](https://getcomposer.org/doc/). - - ::: - -2. Install javascript dependencies with [npm](https://www.npmjs.com/) - - ```bash - npm install - ``` - - ::: info Note - - The javascript dependencies aren't included in the repository. Npm will check - the `package.json` and `package.lock` files to download the packages with the - right versions. The dependencies will live under the `node_module` folder. - For more info, check out the [NPM documentation](https://docs.npmjs.com/). - - ::: - -3. Generate static assets: - - ```bash - # build all static assets at once - npm run build:static - - # build specific assets - npm run build:icons - npm run build:svg - ``` - - ::: info Note - - The static assets generated live under the `public/assets` folder, it - includes javascript, styles, images, fonts, icons and svg files. - - ::: - -### Initialize and populate database - -::: tip Tip - -You may skip this section if you go through the install wizard (go to -`/cp-install`). - -::: - -1. Build the database with the migrate command: - - ```bash - # loads the database schema during first migration - php spark migrate -all - ``` - - You may need to undo the migration (rollback): - - ```bash - # rolls back database schema (deletes all tables and their content) - php spark migrate:rollback - ``` - -2. Populate the database with the required data: - - ```bash - # Populates all required data - php spark db:seed AppSeeder - ``` - - You may choose to add data separately: - - ```bash - # Populates all categories - php spark db:seed CategorySeeder - - # Populates all Languages - php spark db:seed LanguageSeeder - - # Populates all podcasts platforms - php spark db:seed PlatformSeeder - - # Populates all Authentication data (roles definition…) - php spark db:seed AuthSeeder - ``` - -3. (optionnal) Populate the database with test data: - - - Populate test data (login: admin / password: AGUehL3P) - - ```bash - php spark db:seed TestSeeder - ``` - - - Populate with fake podcast analytics: - - ```bash - php spark db:seed FakePodcastsAnalyticsSeeder - ``` - - - Populate with fake website analytics: - - ```bash - php spark db:seed FakeWebsiteAnalyticsSeeder - ``` - - TestSeeder will add an active superadmin user with the following credentials: - - - username: **admin** - - password: **AGUehL3P** - -### Useful docker / docker-compose commands - -- Monitor the app container: - -```bash -docker-compose logs --tail 50 --follow --timestamps app -``` - -- Interact with redis server using included redis-cli command: - -```bash -docker exec -it castopod_redis redis-cli -``` - -- Monitor the redis container: - -```bash -docker-compose logs --tail 50 --follow --timestamps redis -``` - -- Monitor the mariadb container: - -```bash -docker-compose logs --tail 50 --follow --timestamps mariadb -``` - -- Monitor the phpmyadmin container: - -```bash -docker-compose logs --tail 50 --follow --timestamps phpmyadmin -``` - -- Restart docker containers: - -```bash -docker-compose restart -``` - -- Destroy all containers, opposite of `up` command: - -```bash -docker-compose down -``` - -- Rebuild app container: - -```bash -docker-compose build app -``` - -Check [docker](https://docs.docker.com/engine/reference/commandline/docker/) and -[docker-compose](https://docs.docker.com/compose/reference/) documentations for -more insights. - -## Known issues - -### Allocation failed - JavaScript heap out of memory - -This happens when running `npm install`. - -👉 By default, docker might not have access to enough RAM. Allocate more memory -and run `npm install` again. - -### (Linux) Files created inside container are attributed to root locally - -You may use Linux user namespaces to fix this on your machine: - -::: info Note - -Replace "username" with your local username - -::: - -1. Go to `/etc/docker/daemon.json` and add: - - ```json - { - "userns-remap": "username" - } - ``` - -2. Configure the subordinate uid/guid: - - ```bash - # in /etc/subuid - username:1000:1 - username:100000:65536 - ``` - - ```bash - # in /etc/subgid - username:1000:1 - username:100000:65536 - ``` - -3. Restart docker: - - ```bash - sudo systemctl restart docker - ``` - -4. That's it! Now, the root user in the container will be mapped to the user on - your local machine, no more permission issues! 🎉 - -You can check -[this great article](https://www.jujens.eu/posts/en/2017/Jul/02/docker-userns-remap/) -to know more about how it works. + - nazwa użytkownika: **castopod \ No newline at end of file diff --git a/docs/src/pl/getting-started/_category_.json b/docs/src/pl/getting-started/_category_.json index 877a378f..025aebd2 100644 --- a/docs/src/pl/getting-started/_category_.json +++ b/docs/src/pl/getting-started/_category_.json @@ -1,4 +1,4 @@ { - "label": "Getting Started", + "label": "Zaczynając", "position": 2 -} +} \ No newline at end of file diff --git a/docs/src/pl/getting-started/auth.md b/docs/src/pl/getting-started/auth.md index a953d785..600db48a 100644 --- a/docs/src/pl/getting-started/auth.md +++ b/docs/src/pl/getting-started/auth.md @@ -1,87 +1,86 @@ --- -title: Authentication & Authorization +title: Autoryzacja i Uprawnienia sidebarDepth: 3 --- -# Uwierzytelnianie & Autoryzacja +# Autoryzacja i Uprawnienia -Castopod handles authentication and authorization using `codeigniter/shield` -coupled with custom rules. Roles and permissions are defined at two levels: +Castopod zarządza autoryzacją i uprawnieniami za pomocą `codeigniter/shield` w połączeniu z niestandardowymi regułami. Role i uprawnienia są zdefiniowane na dwóch poziomach: -1. [instance wide](#1-instance-wide-roles-and-permissions) -2. [per podcast](#2-per-podcast-roles-and-permissions) +1. [W skali instancji](#1-role-i-uprawnienia-w-skali-instancji) +2. [Dla poszczególnych podcastów](#2-role-i-uprawnienia-dla-poszczególnych-podcastów) -## 1. Instance wide roles and permissions +## 1. Role i uprawnienia w skali instancji -### Instance roles +### Role w instancji -| role | description | permissions | -| ----------- | ----------------------------------- | ------------------------------------------------------------------------------------------ | -| Super admin | Has complete control over Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks | -| Manager | Manages Castopod's content. | podcasts.create, podcasts.import, persons.manage, pages.manage | -| Podcaster | General users of Castopod. | admin.access | +| rola | opis | uprawnienia | +| ------------ | ----------------------------------------- | ------------------------------------------------------------------------------------------------- | +| Super admin | Ma pełną kontrolę nad Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks | +| Zarządzający | Zarządza treścią Castopod. | podcasts.create, podcasts.import, persons.manage, pages.manage | +| Podcaster | Zwykły użytkownik Castopod. | admin.access | -### Instance permissions +### Uprawnienia w instancji -| permission | description | -| ----------------------- | ------------------------------------------------------------------ | -| admin.access | Can access the Castopod admin area. | -| admin.settings | Can access the Castopod settings. | -| users.manage | Can manage Castopod users. | -| persons.manage | Can manage persons. | -| pages.manage | Can manage pages. | -| podcasts.view | Can view all podcasts. | -| podcasts.create | Can create new podcasts. | -| podcasts.import | Can import podcasts. | -| fediverse.manage-blocks | Can block fediverse actors/domains from interacting with Castopod. | +| uprawnienie | opis | +| ----------------------- | ---------------------------------------------------------------- | +| admin.access | Może uzyskać dostęp do panelu administracyjnego Castopod. | +| admin.settings | Może uzyskać dostęp do ustawień Castopod. | +| users.manage | Może zarządzać użytkownikami Castopod. | +| persons.manage | Może zarządzać osobami. | +| pages.manage | Może zarządzać stronami. | +| podcasts.view | Może przeglądać wszystkie podcasty. | +| podcasts.create | Może tworzyć nowe podcasty. | +| podcasts.import | Może importować podcasty. | +| fediverse.manage-blocks | Może blokować aktorów/domenei federacji od interakcji z Castopod. | -## 2. Per podcast roles and permissions +## 2. Role i uprawnienia dla poszczególnych podcastów -### Per podcast roles +### Role dla poszczególnych podcastów -| role | description | permissions | -| ------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Admin | Has complete control of podcast #{id}. | \* | -| Editor | Manages content and publications of podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments | -| Author | Manages content of podcast #{id} but cannot publish them. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips | -| Guest | General contributor of the podcast #{id}. | view, episodes.view | +| rola | opis | uprawnienia | +| -------- | ------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Admin | Ma pełną kontrolę nad podcastem #{id}. | \* | +| Redaktor | Zarządza treścią i publikacjami podcastu #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments | +| Autor | Zarządza treścią podcastu #{id}, ale nie może publikować. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips | +| Gość | Ogólny współtwórca podcastu #{id}. | view, episodes.view | -### Per podcast permissions +### Uprawnienia dla poszczególnych podcastów -| permission | description | -| ---------------------------- | ------------------------------------------------------------------------ | -| view | Can view dashboard and analytics of podcast #{id}. | -| edit | Can edit podcast #{id}. | -| delete | Can delete podcast #{id}. | -| manage-import | Can synchronize imported podcast #{id}. | -| manage-persons | Can manage subscriptions of podcast #{id}. | -| manage-subscriptions | Can manage subscriptions of podcast #{id}. | -| manage-contributors | Can manage contributors of podcast #{id}. | -| manage-platforms | Can set/remove platform links of podcast #{id}. | -| manage-publications | Can publish podcast #{id}. | -| manage-notifications | Can view and mark notifications as read for podcast #{id}. | -| interact-as | Can interact as the podcast #{id} to favourite, share or reply to posts. | -| episodes.view | Can view dashboard and analytics of podcast #{id}. | -| episodes.create | Can create episodes for podcast #{id}. | -| episodes.edit | Can edit podcast #{id}. | -| episodes.delete | Can delete podcast #{id}. | -| episodes.manage-persons | Can manage subscriptions of podcast #{id}. | -| episodes.manage-clips | Can manage video clips or soundbites of podcast #{id}. | -| episodes.manage-publications | Can publish podcast #{id}. | -| episodes.manage-comments | Can create/remove episode comments of podcast #{id}. | +| uprawnienie | opis | +| --------------------------- | ------------------------------------------------------------------- | +| widzieć | Dostęp do panelu sterowania i analizy podcastu #{id}. | +| edytować | Może edytować podcast #{id}. | +| usunąć | Może usunąć podcast #{id}. | +| zarządzać importami | Może synchronizować zaimportowany podcast #{id}. | +| zarządzać osobami | Może zarządzać subskrypcjami dla podcastu #{id}. | +| zarządzać subskrypcjami | Może zarządzać subskrypcjami dla podcastu #{id}. | +| zarządzać współpracownikami | Może zarządzać współpracownikami podcastu #{id}. | +| zarządzać platformami | Może konfigurować/usuwać linki do platformy na podcast #{id}. | +| zarządzać publikacjami | Może publikować podcast #{id}. | +| zarządzać powiadomieniami | Może przeglądać i oznaczać powiadomienia jako przeczytane dla podcastu #{id}. | +| działać jako | Może działać jako podcast #{id}, aby dodawać, udostępniać lub odpowiadać na wiadomości. | +| episodes.view | Może przeglądać zestawienia i analizy podcastu #{id}. | +| stworzyć odcinki | Może tworzyć odcinki dla podcastu #{id}. | +| edytować odcinki | Może edytować odcinki podcastu #{id}. | +| usunąć odcinki | Może usunąć odcinki podcastu #{id}. | +| episodes.manage-persons | Może zarządzać subskrypcjami dla podcastu #{id}. | +| episodes.manage-clips | Może zarządzać klipami wideo lub dźwiękowymi dla podcastu #{id}. | +| episodes.manage-publications| Może publikować podcast #{id}. | +| episodes.manage-comments | Może tworzyć/usuwać komentarze odcinka podcastu #{id}. | - + \ No newline at end of file diff --git a/docs/src/pl/getting-started/docker.md b/docs/src/pl/getting-started/docker.md index 75158bd6..8b01ba03 100644 --- a/docs/src/pl/getting-started/docker.md +++ b/docs/src/pl/getting-started/docker.md @@ -1,35 +1,29 @@ --- -title: Official Docker images +title: Oficjalne obrazy Dockera sidebarDepth: 3 --- -# Official Docker images +# Oficjalne obrazy Dockera -Castopod pushes 3 Docker images to the Docker Hub during its automated build -process: +Podczas procesu automatycznego budowania, Castopod wysyła 3 obrazy Dockera na Docker Hub: -- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): an all - in one castopod image using nginx unit -- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): the app bundle - with all of Castopod dependencies -- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an - Nginx configuration for Castopod +- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): obraz Castopod zintegrowany z nginx unit +- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): zestaw aplikacji zawierający wszystkie zależności Castopod +- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): konfiguracja Nginx do Castopod -Additionally, Castopod requires a MySQL-compatible database. A Redis database -can be added as a cache handler. +Dodatkowo, Castopod wymaga bazy danych zgodnej z MySQL. Baza danych Redis może zostać dodana jako mechanizm cache'owania. -## Supported tags +## Wspierane tagi -- `develop` [unstable], latest development branch build -- `beta` [stable], latest beta version build -- `latest` [stable], latest version build -- `1.x.x` [stable], specific version build (since `1.0.0`) +- `devel` [unstable], najnowszy rozwijany branch +- `beta` [stable], najnowsza wersja beta +- `1.x.x` [stable], konkretne wydanie (od `1.0.0`) -## Example usage +## Przykładowe użycie -1. Install [docker](https://docs.docker.com/get-docker/) and +1. Zainstaluj [dockera](https://docs.docker.com/get-docker/) i [docker-compose](https://docs.docker.com/compose/install/) -2. Create a `docker-compose.yml` file with the following: +2. Utwórz plik `docker-compose.yml` z następującą zawartością: ```yml version: "3.7" @@ -87,13 +81,12 @@ can be added as a cache handler. castopod-db: ``` - You have to adapt some variables to your needs (e.g. `CP_BASEURL`, - `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` and `CP_ANALYTICS_SALT`). + Musisz dostosować niektóre zmienne do swoich potrzeb (np. `CP_BASEURL`, + `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD`, `CP_ANALYTICS_SALT`). -3. Setup a reverse proxy for TLS (SSL/HTTPS) +3. Skonfiguruj reverse proxy dla TLS (SSL/HTTPS) - TLS is mandatory for ActivityPub to work. This job can easily be handled by - a reverse proxy, for example with [Caddy](https://caddyserver.com/): + TLS jest wymagany do działania protokołu ActivityPub. Zadanie to można łatwo zrealizować za pomocą reverse proxy, na przykład za pomocą [Caddy](https://caddyserver.com/): ``` #castopod @@ -102,57 +95,57 @@ can be added as a cache handler. } ``` -4. Run `docker-compose up -d`, wait for it to initialize and head on to - `https://castopod.example.com/cp-install` to finish setting up Castopod! +4. Uruchom `docker-compose up -d`, poczekaj, aż się zainicjalizuje na + `https://castopod.example.com/cp-install`, aby zakończyć konfigurację Castopod! -5. You're all set, start podcasting! 🎙️🚀 +5. Jesteś gotowy, zacznij publikować podcasty! 🎙️🚀 -## Environment Variables +## Zmienne środowiskowe -- **castopod/castopod** and **castopod/app** +- **castopod/castopod** i **castopod/app** - | Variable name | Type (`default`) | Default | - | ------------------------------------- | ----------------------- | ---------------- | - | **`CP_BASEURL`** | string | `undefined` | - | **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` | - | **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` | - | **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` | - | **`CP_ANALYTICS_SALT`** | string | `undefined` | - | **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` | - | **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` | - | **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` | - | **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` | - | **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` | - | **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` | - | **`CP_REDIS_HOST`** | ?string | `"localhost"` | - | **`CP_REDIS_PASSWORD`** | ?string | `null` | - | **`CP_REDIS_PORT`** | ?number | `6379` | - | **`CP_REDIS_DATABASE`** | ?number | `0` | - | **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` | - | **`CP_EMAIL_FROM`** | ?string | `undefined` | - | **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` | - | **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` | - | **`CP_EMAIL_SMTP_PORT`** | ?number | `25` | - | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` | - | **`CP_ENABLE_2FA`** | ?boolean | `undefined` | - | **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` | - | **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` | - | **`CP_MEDIA_S3_KEY`** | ?string | `undefined` | - | **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` | - | **`CP_MEDIA_S3_REGION`** | ?string | `undefined` | - | **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` | - | **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` | - | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` | - | **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` | - | **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` | - | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | - | **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` | - | **`CP_TIMEOUT`** | ?number | `900` | + | Nazwa zmiennej | Typ (`default`) | Domyślnie | + | --------------------------------- | ----------------------- | ---------- | + | **`CP_BASEURL`** | string | `undefined`| + | **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL`| + | **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"`| + | **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` | + | **`CP_ANALYTICS_SALT`** | string | `undefined`| + | **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"`| + | **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE`| + | **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER`| + | **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD`| + | **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` | + | **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` | + | **`CP_REDIS_HOST`** | ?string | `"localhost"`| + | **`CP_REDIS_PASSWORD`** | ?string | `null` | + | **`CP_REDIS_PORT`** | ?number | `6379` | + | **`CP_REDIS_DATABASE`** | ?number | `0` | + | **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` | + | **`CP_EMAIL_FROM`** | ?string | `undefined` | + | **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"`| + | **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` | + | **`CP_EMAIL_SMTP_PORT`** | ?number | `25` | + | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` | + | **`CP_ENABLE_2FA`** | ?boolean | `undefined` | + | **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` | + | **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` | + | **`CP_MEDIA_S3_KEY`** | ?string | `undefined` | + | **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` | + | **`CP_MEDIA_S3_REGION`** | ?string | `undefined` | + | **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` | + | **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` | + | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` | + | **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` | + | **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` | + | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | + | **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` | + | **`CP_TIMEOUT`** | ?number | `900` | - **castopod/web-server** - | Variable name | Type | Default | - | ---------------------- | --------------------- | ------- | - | **`CP_APP_HOSTNAME`** | ?string | `"app"` | - | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | - | **`CP_TIMEOUT`** | ?number | `900` | + | Nazwa zmiennej | Typ | Domyślnie | + | -------------------------- | -------------------- | --------- | + | **`CP_APP_HOSTNAME`** | ?string | `"app"` | + | **`CP_MAX_BODY_SIZE`** | ?number (with suffix)| `512M` | + | **`CP_TIMEOUT`** | ?number | `900` | \ No newline at end of file diff --git a/docs/src/pl/getting-started/install.md b/docs/src/pl/getting-started/install.md index af405daf..9bf24229 100644 --- a/docs/src/pl/getting-started/install.md +++ b/docs/src/pl/getting-started/install.md @@ -1,221 +1,103 @@ --- -title: Installation +title: Instalacja sidebarDepth: 3 --- -# How to install Castopod? +# Jak zainstalować Castopod? -Castopod was thought-out to be easy to install. Whether using dedicated or -shared hosting, you can install it on most PHP-MySQL compatible web servers. +Castopod został stworzony tak, aby instalacja była łatwa. Niezależnie od tego, +czy korzystasz z hostingu dedykowanego czy współdzielonego, możesz zainstalować +go na większości serwerów internetowych obsługujących PHP-MySQL. -::: tip Note +::: tip Wskazówka -We've released official Docker images for Castopod! +Opracowaliśmy oficjalne obrazy Docker dla Castopoda! -If you prefer using Docker, you may skip this and go straight to the -[docker documentation](./docker.md) for Castopod. +Jeśli wolisz używać Dockera, możesz pominąć ten krok i przejść bezpośrednio do [dokumentacji Dockera](./docker.md) dla Castopoda. ::: -## Requirements +## Wymagania wstępne -- PHP v8.1 only -- MySQL version 5.7 or higher or MariaDB version 10.2 or higher -- HTTPS support -- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - incoming requests +- PHP w wersji 8.1 +- Wersja MySQL 5.7 lub nowsza lub wersja MariaDB 10.2 lub nowsza +- Wsparcie dla HTTPS +- [Zsynchronizowany zegar](https://wiki.debian.org/NTP) dla walidacji przychodzących żądań federacji -### PHP v8.1 only +### PHP w wersji 8.1 -PHP version 8.1 is required, with the following extensions installed: +Wymagana jest wersja 8.1 PHP z zainstalowanymi następującymi rozszerzeniami: -- [intl](https://php.net/manual/en/intl.requirements.php) -- [libcurl](https://php.net/manual/en/curl.requirements.php) -- [mbstring](https://php.net/manual/en/mbstring.installation.php) -- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**, - **PNG** and **WEBP** libraries. -- [exif](https://www.php.net/manual/en/exif.installation.php) +- [intl](https://www.php.net/manual/pl/intl.requirements.php) +- [libcurl](https://www.php.net/manual/pl/curl.requirements.php) +- [mbstring](https://www.php.net/manual/pl/mbstring.installation.php) +- [gd](https://www.php.net/manual/pl/image.installation.php) z **JPEG**, + **PNG** i bibliotekami **WEBP**. +- [exif](https://www.php.net/manual/pl/exif.installation.php) -Additionally, make sure that the following extensions are enabled in your PHP: +Upewnij się również, że następujące rozszerzenia są włączone w Twoim PHP: -- json (enabled by default - don't turn it off) -- xml (enabled by default - don't turn it off) -- [mysqlnd](https://php.net/manual/en/mysqlnd.install.php) +- json (włączone domyślnie - nie wyłączaj go) +- xml (włączone domyślnie - nie wyłączaj go) +- [mysqlnd](https://www.php.net/manual/pl/mysqlnd.install.php) -### MySQL compatible database +### Kompatybilna baza danych MySQL -> We recommend using [MariaDB](https://mariadb.org). +> Zalecamy korzystanie z [MariaDB](https://mariadb.org). -::: warning Warning +::: warning Uwaga -Castopod only works with supported MySQL 5.7 or higher compatible databases. It -will break with the previous MySQL v5.6 for example as its end of life was on -February 5, 2021. +Castopod działa tylko z bazą danych MySQL w wersji 5.7 lub nowszej. Wersje +5.6 (które przestały być obsługiwane 5 lutego 2021 r.) lub wcześniejsze nie +będą działać. ::: -You will need the server hostname, database name, username and password to -complete the installation process. If you do not have these, please contact your -server administrator. +Aby zakończyć proces instalacji, będziesz potrzebować nazwy hosta serwera, nazwy +bazy danych, nazwy użytkownika i hasła. Jeśli nie posiadasz tych informacji, +skontaktuj się z administratorem. -#### Privileges +#### Uprawnienia dostępu -User must have at least these privileges on the database for Castopod to work: -`CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`, `UPDATE`, -`REFERENCES`, `CREATE VIEW`. +Użytkownik musi mieć co najmniej następujące uprawnienia dostępu do bazy danych, aby Castopod działał: `CREATE`, `ALTER`, `DELETE`, `EXECUTE`, +`INDEX`,`INSERT`, `SELECT`, `UPDATE`,`REFERENCES`, `CREATE VIEW`. -### (Optional) FFmpeg v4.1.8 or higher for Video Clips +### (Opcjonalnie) FFmpeg w wersji 4.1.8 lub nowszej do generowania klipów wideo -[FFmpeg](https://www.ffmpeg.org/) version 4.1.8 or higher is required if you -want to generate Video Clips. The following extensions must be installed: +Jeśli chcesz generować klipy wideo, wymagana jest wersja FFmpeg 4.1.8 lub nowsza. +Następujące rozszerzenia muszą być zainstalowane: -- **FreeType 2** library for - [gd](https://www.php.net/manual/en/image.installation.php). +- biblioteka **FreeType 2** dla [gd](https://www.php.net/manual/pl/image.installation.php). -### (Optional) Other recommendations +### (Opcjonalnie) Inne zalecenia -- Redis for better cache performances. -- CDN for static files caching and better performances. -- e-mail gateway for lost passwords. +- Redis dla lepszej wydajności pamięci podręcznej. +- CDN dla pamięci podręcznej statycznych plików i lepszej wydajności. +- Brama e-mail dla przypomnienia hasła. -## Install instructions +## Instrukcje instalacji -### Pre-requisites +### Przygotowanie -0. Get a Web Server with [requirements](#requirements) installed -1. Create a MySQL database for Castopod with a user having access and - modification privileges (for more info, see - [MySQL compatible database](#mysql-compatible-database)). -2. Activate HTTPS on your domain with an _SSL certificate_. -3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto - the web server if you haven’t already. - - ⚠️ Set the web server document root to the `public/` sub-folder within the - `castopod` folder. -4. Add **cron tasks** on your web server for various background processes - (replace the paths accordingly): +0. Ożywienie serwera WWW zainstalowanymi [wymaganiami](#wymagania-wstępne) +1. Utwórz bazę danych MySQL dla Castopoda z użytkownikiem mającym odpowiednie uprawnienia i uprawnienia do modyfikacji (więcej informacji znajdziesz w dziale [Kompatybilna baza danych MySQL](#kompatybilna-baza-danych-mysql)) +2. Włącz obsługę protokołu HTTPS dla swojej domeny z wykorzystaniem _certyfikatu SSL_. +3. Pobierz i rozpakuj najnowszy [pakiet Castopod](https://castopod.org/) na serwerze WWW, jeśli tego jeszcze nie zrobiłeś. + - ⚠️ Ustaw miejsce docelowe serwera WWW na podkatalog `public/` w katalogu `castopod`. +4. Dodaj **zadania cronowe** na swoim serwerze WWW dla różnych procesów w tle (dopasuj ścieżki odpowiednio): ```bash * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1 ``` - **Note** - If you do not add this cron task, the following Castopod features - will not work: + **Uwaga** - Jeśli nie dodasz tego zadania cron, następujące funkcje Castopoda nie będą działać: - - Importing a podcast from an existing RSS feed - - Broadcasting social activities to your followers in the fediverse - - Broadcasting episodes to open hubs using - [WebSub](https://en.wikipedia.org/wiki/WebSub) - - Generating video clips - - [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips) + - Importowanie podcastu z istniejącego kanału RSS + - Nadawanie aktywności społecznościowych obserwującym w federacji + - Rozgłaszanie odcinków do otwartych węzłów przy użyciu [WebSub](https://en.wikipedia.org/wiki/WebSub) + - Generowanie klipów wideo - [wymagane jest FFmpeg](#opcjonalnie-ffmpeg-w-wersji-418-lub-wyższej-do-generacji-klipów-wideo) -### (recommended) Install Wizard +### (Zalecana metoda) Kreator instalacji -1. Run the Castopod install script by going to the install wizard page - (`https://your_domain_name.com/cp-install`) in your favorite web browser. -2. Follow the instructions on your screen. -3. Start podcasting! - -::: info Note - -The install script writes a `.env` file in the package root. If you cannot go -through the install wizard, you can create and edit the `.env` file manually -based on the `.env.example` file. - -::: - -### Email/SMTP setup - -Email configuration is required for some features to work properly (eg. -retrieving your forgotten password, sending instructions to premium subscribers, -…) - -You may add your email configuration in your instance's `.env` like so: - -```ini -# […] - -email.fromEmail="your_email_address" -email.SMTPHost="your_smtp_host" -email.SMTPUser="your_smtp_user" -email.SMTPPass="your_smtp_password" -``` - -#### Email config options - -| Variable name | Type | Default | -| ---------------- | -------------------- | ------------ | -| **`fromEmail`** | string | `undefined` | -| **`fromName`** | string | `"Castopod"` | -| **`SMTPHost`** | string | `undefined` | -| **`SMTPUser`** | string | `undefined` | -| **`SMTPPass`** | string | `undefined` | -| **`SMTPPort`** | number | `25` | -| **`SMTPCrypto`** | [`"tls"` or `"ssl"`] | `"tls"` | - -### Media storage - -By default, files are saved to the `public/media` folder using the file system. -If you need to relocate the `media` folder to a different location, you can -specify it in your `.env` file as shown below: - -```ini -# […] - -media.root="media" -media.storage="/mnt/storage" -``` - -In this example, the files will be saved to the /mnt/storage/media folder. Make -sure to also update your web server configuration to reflect this change. - -### S3 - -If you prefer storing your media files on an S3 compatible storage, you may -specify it in your `.env`: - -```ini -# […] - -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" -``` - -#### S3 config options - -| Variable name | Type | Default | -| ----------------------- | ------- | ----------- | -| **`endpoint`** | string | `undefined` | -| **`key`** | string | `undefined` | -| **`secret`** | string | `undefined` | -| **`region`** | string | `undefined` | -| **`bucket`** | string | `castopod` | -| **`protocol`** | number | `undefined` | -| **`pathStyleEndpoint`** | boolean | `false` | -| **`keyPrefix`** | string | `undefined` | - -## Community packages - -If you don't want to bother with installing Castopod manually, you may use one -of the packages created and maintained by the open-source community. - -### Install with YunoHost - -[YunoHost](https://yunohost.org/) is a distribution based on Debian GNU/Linux -made up of free and open-source software packages. It manages the hardships of -self-hosting for you. - -
- - - Install Castopod with YunoHost - - -Github -Repo - -
+1. Uruchom skrypt instalacyjny Castopoda, przechodząc do strony kreatora instalacji (`https://nazwa_twojej_domeny.com/cp-install`) w swojej ulubionej przeglądarce internetowej. +2. Postępuj zgod \ No newline at end of file diff --git a/docs/src/pl/getting-started/security.md b/docs/src/pl/getting-started/security.md index e205698d..6751cf35 100644 --- a/docs/src/pl/getting-started/security.md +++ b/docs/src/pl/getting-started/security.md @@ -1,23 +1,18 @@ --- -title: Security +title: Bezpieczeństwo --- -# Security concerns +# Pytania dotyczące bezpieczeństwa -Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP -framework that encourages -[good security practices](https://codeigniter.com/user_guide/concepts/security.html). +Castopod jest rozwijany na podstawie [CodeIgniter4](https://codeigniter.com/), frameworka PHP, który promuje [dobre praktyki z zakresu bezpieczeństwa](https://codeigniter.com/user_guide/concepts/security.html). -To maximize your instance's safety and prevent any malicious attack, we -recommend you update all your Castopod files permissions after installation or -updates (to avoid any prior permission error): +Aby zapewnić jak najlepsze zabezpieczenia dla Twojej instancji i uniknąć złośliwych ataków, zalecamy aktualizowanie uprawnień plików Castopoda po każdej instalacji i aktualizacji (oraz unikanie błędów dotyczących dostępu do plików): -- `writable/` folder must be **readable** and **writable**. -- `public/media/` folder must be **readable** and **writable**. -- any other file must be set to **readonly**. +- Folder `writable/` powinien być dostępny w trybie **odczytu i zapisu**. +- Folder `public/media/` powinien być dostępny w trybie **odczytu i zapisu**. +- Wszystkie inne pliki powinny być dostępne w trybie **tylko do odczytu**. -For instance, if you are using Apache or NGINX with Ubuntu you may do the -following: +Na przykład, jeśli korzystasz z Apache lub NGINX z systemem Ubuntu, możesz użyć następujących poleceń: ```bash sudo chown -R root:root /path/to/castopod diff --git a/docs/src/pl/getting-started/update.md b/docs/src/pl/getting-started/update.md index 76668ae3..73d2c2ad 100644 --- a/docs/src/pl/getting-started/update.md +++ b/docs/src/pl/getting-started/update.md @@ -1,109 +1,97 @@ --- -title: Update +title: Aktualizacja sidebarDepth: 3 --- -# How to update Castopod? +# Jak zaktualizować Castopod? +Po zainstalowaniu Castopod, możesz zaktualizować swoją instancję do najnowszej wersji, aby skorzystać z najnowszych funkcji ✨, poprawek błędów 🐛 i usprawnień wydajności ⚡. -After installing Castopod, you may want to update your instance to the latest -version in order to enjoy the latest features ✨, bug fixes 🐛 and performance -improvements ⚡. +## Instrukcje aktualizacji -## Update instructions +0. ⚠️ Przed przeprowadzeniem aktualizacji zalecamy wykonanie kopii zapasowej plików Castopod oraz bazy danych. -0. ⚠️ Before any update, we highly recommend you backup your Castopod files and - database. + - patrz + [Czy powinienem wykonać kopię zapasową przed aktualizacją?](#czy-powinienem-wykonać-kopię-zapasową-przed-aktualizacją) - - cf. - [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) +1. Przejdź do strony + [releases page](https://code.castopod.org/adaures/castopod/-/releases) i + sprawdź, czy twoja instancja jest zgodna z najnowszą wersją Castopod. -1. Go to the - [releases page](https://code.castopod.org/adaures/castopod/-/releases) and - see if your instance is up to date with the latest Castopod version + - patrz + [Gdzie mogę znaleźć wersję Castopod?](#gdzie-mogę-znaleźć-wersję-castopod) - - cf. - [Where can I find my Castopod version?](#where-can-i-find-my-castopod-version) +2. Pobierz najnowszy pakiet wydania o nazwie `Castopod Package`, możesz wybrać + między archiwami `zip` lub `tar.gz`. -2. Download the latest release package named `Castopod Package`, you may choose - between the `zip` or `tar.gz` archives + - ⚠️ Upewnij się, że pobierasz Pakiet Castopod, a **NIE** Kod źródłowy. + - Zauważ, że najnowszy pakiet możesz również pobrać z + [castopod.org](https://castopod.org/). - - ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code - - Note that you can also download the latest package from - [castopod.org](https://castopod.org/) +3. Na swoim serwerze: -3. On your server: - - - Remove all files except `.env` and `public/media` - - Copy the new files from the downloaded package into your server + - Usuń wszystkie pliki, oprócz `.env` i `public/media`. + - Skopiuj nowe pliki z pobranego pakietu na swój serwer. ::: info Note - You may need to reset files permissions as during the install process. - Check [Security Concerns](./security.md). + Być może będziesz musiał ponownie ustawić uprawnienia plików tak, jak to + zrobiłeś podczas procesu instalacji. Sprawdź + [Security Concerns](./security.md). ::: -4. Update your database schema from your `Castopod Admin` > `About` page or by - running: +4. Zaktualizuj schemat bazy danych ze strony `Castopod Admin` > `About` lub + wykonaj polecenie: ```bash php spark castopod:database-update ``` -5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > - `Housekeeping` -6. ✨ Enjoy your fresh instance, you're all done! +5. Wyczyść pamięć podręczną ze strony `Castopod Admin` > `Settings` > `general` > + `Housekeeping`. +6. ✨Ciesz się swoją nową instancją, skończyłeś! ::: info Note -Releases may come with additional update instructions (see -[releases page](https://code.castopod.org/adaures/castopod/-/releases)). +Wersje mogą być dostarczane z dodatkowymi instrukcjami aktualizacji (patrz +[releases notes page](https://code.castopod.org/adaures/castopod/-/releases)). -- cf. - [I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do) +- patrz + [Nie aktualizowałem mojej instancji od dłuższego czasu... Co powinienem zrobić?](#nie-aktualizowałem-mojej-instancji-od-dłuższego-czasu-co-powinienem-zrobić) ::: -## Fully Automated updates +## Całkowicie zautomatyzowane aktualizacje > Coming soon... 👀 -## Frequently asked questions (FAQ) +## Najczęściej Zadawane Pytania (FAQ) -### Where can I find my Castopod version? +### Gdzie mogę znaleźć wersję Castopod? -Go to your Castopod admin panel, the version is displayed on the bottom left -corner. +Przejdź do panelu administracyjnego Castopod, wersja wyświetli się na dole po lewej stronie. -Alternatively, you can find the version in the `app > Config > Constants.php` -file. +Możesz również znaleźć wersję w aplikacji +`> Konfiguracja > Constantes.php` folderu. -### [I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do) +### Nie aktualizowałem mojej instancji od dłuższego czasu... Co powinienem zrobić? -No problem! Just get the latest release as described above. Only, when going -through the release instructions (4), perform them sequentially, from the oldest -to the newest. +Nie ma problemu! Po prostu uzyskaj najnowszą wersję, opisaną powyżej. Podczas wykonywania instrukcji aktualizacji (4) wykonuj je sekwencyjnie, od najstarszej do najnowszej. -> You may want to backup your instance depending on how long you haven't updated -> Castopod. +> Powinieneś wykonać kopię zapasową instancji zgodnie z datą Twojej ostatniej aktualizacji Castopod. -For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to -`v1.0.0-beta.1`: +Na przykład, jeśli posiadasz wersję `v1.0.0-alpha.42` i chcesz zaktualizować do `v1.0.0-beta.1`: -0. (highly recommended) Make a backup of your files and database. +0. (silnie zalecane) Zrób kopię zapasową swoich plików i bazy danych. -1. Download the latest release, overwrite your files whilst keeping `.env` and - `public/media`. +1. Pobierz najnowszą wersję, zastępując swoje pliki, ale zachowaj `.env` i `public/media`. -2. Go through each release update instructions sequentially (from oldest to - newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`, - `v1.0.0-alpha.45`, …, `v1.0.0-beta.1`. +2. Wykonuj instrukcje aktualizacji po kolei (od najstarszej do najnowszej). -3. ✨ Enjoy your fresh instance, you're all done! +3. ✨ Twoja nowa instancja jest gotowa! -### Should I make a backup before updating? +### Czy powinienem wykonać kopię zapasową przed aktualizacją? -We advise you do, so you don't lose everything if anything goes wrong! +Radzimy tak zrobić, żeby w razie czego nie stracić wszystkiego! -More generally, we advise you make regular backups of your Castopod files and -database to prevent you from losing it all… +Generalnie zalecamy regularne tworzenie kopii zapasowych plików Castopod i bazy danych, aby uniknąć utraty wszystkiego... \ No newline at end of file diff --git a/docs/src/pl/index.md b/docs/src/pl/index.md index 42ec8ed0..23f0dcf5 100644 --- a/docs/src/pl/index.md +++ b/docs/src/pl/index.md @@ -2,173 +2,134 @@ sidebarDepth: 2 --- -# Welcome 👋 +# Witaj 👋 [![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![stars-badge]][stars] -Castopod is a free & open-source hosting platform made for podcasters who want -engage and interact with their audience. +Castopod to bezpłatna i open source'owa platforma hostingowa dla twórców podcastów, którzy chcą się angażować i komunikować się ze swoją publicznością. -Castopod is easy to install and was built on top of -[CodeIgniter4](https://codeigniter.com/), a powerful PHP framework with a very -small footprint. +Castopod jest łatwy w instalacji i został zaprojektowany przy użyciu [CodeIgniter4](https://codeigniter.com/), potężnego i bardzo małego frameworka PHP. -## Features +## Funkcje -- 🌱  Free & open-source (AGPL v3 License) -- 🔐  Focused on data sovereignty: your content, audience, and analytics - belong to you, and you only -- 🪄  Podcasting 2.0 features: GUID, locked, transcripts, funding, - chapters, location, persons, soundbites, … -- 💬  Built-in social network: - - 🚀  Castopod is part of the Fediverse, a decentralized social network - - ❤️  Create posts, share, favourite, and comment on episodes -- 📈  Built-in analytics: - - ⚖️  GDPR / CCPA / LGPD compliant - - 🪙  Standard IABv2 audience measurement - - 🏡  On-premises analytics, no third party involved -- 📢  Built-in marketing tools: - - ✅  SEO ready (open-graph meta-tags, JSON-LD, …) - - 📱  PWA: install as a standalone app - - 🎨  Customizable theme colors - - 🎬  Generate ready-to-share Video clips from episodes - - 🔉  Generate soundbites - - ▶️  Embeddable player, embed your episodes on any website -- 💸  Monetization: - - 🔗  Funding links - - 📲  listen-to-click ads +- 🌱  Wolne, darmowe i open-source (Licencja AGPL v3) +- 🔐  Skupione na świadczeniu usług suwerenności danych: Twoje treści, Twoja + publiczność i Twoje statystyki należą tylko do Ciebie +- 🪄 Funkcje Podcasting 2.0: GUID, blokada, + transkrypcje, finansowanie, rozdziały, geolokalizacja, goście, + wycinki dźwiękowe, ... +- 💬  Wbudowane media społecznościowe: + - 🚀  Castopod jest częścią Fediversum, zdecentralizowanej sieci społecznościowej + - ❤ Tworzenie postów, udostępnianie, dodawanie do ulubionych i komentowanie + odcinków +- 📈  Wbudowane statystyki: + - ⚖️  Zgodne z RODO / CCPA / LGPD + - 🪙 Pomiar widowni IABv2 + - 🏡  Wbudowane statystyki, brak pośredniczących stron trzecich +- 📢  Wbudowane narzędzia marketingowe: + - ✅  Gotowe do SEO (meta-tagi open-graph, JSON-LD...) + - 📱  PWA: zainstaluj jako odrębną aplikację + - 🎨  Dostosowywalne kolory motywu + - 🎬  Wygeneruj gotowe udostępnianie wideo z odcinków + - 🔉  Generuj wycinki dźwiękowe + - ▶️  Wbuduj swoje odcinki w dowolną stronę internetową +- 💸  Monetyzacja: + - 🔗  Linki do finansowania + - 📲  reklama "listen-to-click” - 🤝  value4value / WebMonetization - - 💎  Premium podcasts -- 📡  Publish your episodes everywhere with RSS: - - 📱  On all indexes and apps: Podcast Index, Apple Podcasts, Spotify, - Google Podcasts, Deezer, Podcast Addict, Podfriend, … - - ⚡  Broadcast your episodes instantly with WebSub -- 📥  Podcast import: move your existing podcast into Castopod -- 📤  Move your podcast out of Castopod -- 🔀  Multi-tenant: host as many podcasts as you want -- 👥  Multi-user: add contributors and set roles -- 🌎  i18n support: translated in English, French, Polish, German, - Brazilian Portuguese & Spanish… with - [more to come](https://translate.castopod.org)! + - 💎  Płatne podcasty +- 📡 Opublikuj swoje odcinki wszędzie za pomocą RSS: + - 📱  Na wszystkich indeksach i w aplikacjach: Podcast Index, + Podcasty Apple, Spotify, Google Podcasts, Deezer, Podcast Addict, Podfriend... + - ⚡ Natychmiastowe rozpowszechnianie Twoich odcinków za pomocą WebSub +- 📥  Importowanie podcastu: przenieś istniejący podcast do Castopod +- 📤  Przenieś swój podcast do innego dostawcy +- 🔀  Wielojednostkowe: hostuj tyle podcastów, ile chcesz +- 👥  Wielu użytkowników: dodawaj współtwórców i definiuj ich role +- 🌎  Obsługa i18n: tłumaczenie na angielski, francuski, polski, niemiecki, + portugalski, portugalski (brazylijski), hiszpański... i + [w przyszłości więcej](https://translate.castopod.org)! -## Motivation +## Dlaczego Castopod ? -The podcasting ecosystem is decentralized by nature: you can create your podcast -as an RSS file, publish it on the web and have it shared everywhere online. +Ekosystem podcastingu jest z natury zdecentralizowany: możesz stworzyć swój podcast +jako plik RSS, opublikować go w sieci i udostępnić go wszędzie online. -It is in fact one of the only media to have stayed this way for a long time. +W rzeczywistości jest to jedno z nielicznych mediów, które pozostało takim przez długi czas. -As usages are evolving, more and more people are getting into podcasts: whether -it is creators finding new ways to share their ideas, or listeners in the search -for better content. +W miarę rozwoju sposobów korzystania z podcastingu, coraz więcej osób zaczyna słuchać podcastów: czy +to twórcy, którzy poszukują nowych sposobów dzielenia się swoimi pomysłami, czy słuchacze, którzy szukają +lepszego contentu. -With podcasting becoming more widely used, some companies are trying to shift it -towards a more controlled and centralized medium. +Podcasty zaczynają być coraz bardziej popularne, więc niektóre firmy próbują przesunąć je w kierunku bardziej kontrolowanej i scentralizowanej platformy. -Castopod was created in an effort to provide an open and sustainable alternative -to hosting your podcasts, promoting decentralization to ensure that podcasters -creativity can express itself. +Castopod został stworzony jako otwarta i zrównoważona alternatywa dla hostingu Twoich podcastów, promując zdecentralizowane podejście, aby twórczość podcasterów mogła się wyrazić. -This project is pushed by the open-source community, and specifically by the -[Fediverse](https://fediverse.party/en/fediverse/) and -[Podcasting 2.0](https://podcastindex.org/) movements. +Ten projekt jest kierowany przez społeczność open-source, a konkretnie przez Ruch Fediverse i Podcasting 2.0. -## Comparison with other solutions +## Porównanie z innymi rozwiązaniami -We believe that a solution is not necessarily right for everyone, it highly -depends on your needs. So, here are comparisons with other tools to help you to -gauge whether Castopod is the right fit for you. +Wierzymy, że pewne rozwiązania nie są odpowiednie dla każdego, to zależy od Twoich potrzeb. Poniżej przedstawiamy porównanie z innymi narzędziami, które pomogą Ci ocenić, czy Castopod jest odpowiedni dla Ciebie. ### Castopod vs Wordpress -Castopod is often referred to as "the Wordpress for podcasts" because of the -similarities between the two. In some ways this is true. And actually, Castopod -was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption -from the community and the number of websites running it. +Castopod nazywany jest „Wordpressem dla podcastów” ze względu na podobieństwo do tych dwóch platform. W pewnym sensie to prawda. Rzeczywiście, Castopod został zainspirowany ekosystemem Wordpressa, obserwując łatwość korzystania z niego przez społeczność i liczbę działających na nim stron internetowych. -Just like Wordpress, Castopod is free & open source, built using PHP with a -MySQL database and is packaged in a way that you can easily install on most web -servers. +Podobnie jak Wordpress, Castopod jest darmowy i open source oraz oparty na PHP z bazą danych MySQL, a także zaprojektowany w taki sposób, aby łatwo można go było zainstalować na większości serwerów internetowych. -Wordpress is a great way to create your website and extend it with plugins to -get what you want. It is a full fledged CMS that helps you get any type of -website online. +Wordpress to świetny sposób na stworzenie i rozszerzenie swojej strony internetowej za pomocą wtyczek, które pozwolą Ci na dostosowanie witryny dokładnie do Twoich potrzeb. Jest to zaawansowany system CMS, który pomoże Ci stworzyć dowolnego rodzaju stronę internetową. -On the other hand, Castopod is meant to address the podcasters needs -specifically, focusing on podcasting, and nothing else. You don't need any -plugin to get you started on your podcasting journey. +Z drugiej jednak strony, Castopod ma na celu skoncentrowanie się na potrzebach twórców podcastów, skupienie się na podcastingu i niczym więcej. Nie potrzebujesz żadnych wtyczek, aby rozpocząć swoją przygodę z podcastingiem. -This allows optimizing the processes specific to podcasting: ranging from the -creation of your podcasts and the publication of new episodes all the way to -broadcasting, marketing and analytics. +To pozwala na zoptymalizowanie procesów specyficznych dla podcastingu: od tworzenia podcastów i publikowania nowych odcinków po transmisję, marketing i analizy. -Finally, depending on your needs, Wordpress and Castopod can even live side by -side as they share the same requirements! +W zależności od Twoich potrzeb, Wordpress i Castopod mogą istnieć obok siebie, ponieważ mają takie same wymagania! ### Castopod vs Funkwhale -Funkwhale is a self-hosted, modern free and open-source music server. Just as -Castopod, Funkwhale is on the fediverse, a decentralized social network allowing -interoperability between the two. +Funkwhale to samo-hostingowy, nowoczesny, wolny i open-source serwer muzyczny. Podobnie jak Castopod, Funkwhale jest w fediverse, zdecentralizowanej sieci społecznościowej, która umożliwia interoperacyjność między tymi dwoma platformami. -Funkwhale was initially built around music. And later on, as the project -evolved, the ability to host podcasts was introduced. +Funkwhale został początkowo zbudowany wokół muzyki. Później, w miarę rozwoju projektu, wprowadzono możliwość hostowania podcastów. -Unlike Funkwhale, Castopod has been designed and built around podcasting -exclusively. This allows easier implementation for features related to the -podcasting ecosystem, such as the podcasting 2.0 features (transcripts, -chapters, locations, persons, …). +W przeciwieństwie do Funkwhale, Castopod został zaprojektowany i zbudowany wyłącznie wokół podcastingu. Dzięki temu możemy łatwo rozwijać funkcje związane z ekosystemem podcastingu, takie jak funkcje podcastingu 2.0 (transkrypcje, rozdziały, lokalizacje, osoby, ...). -So, you should probably use Funkwhale if you want to host your music, and use -Castopod if you want to host your podcasts. +Dlatego jeśli chcesz hostować swoją muzykę, powinieneś raczej użyć Funkwhale, a jeśli chcesz hostować swoje podcasty, powinieneś używać Castopod. -### Castopod vs other podcast hosts +### Castopod vs inne hostingi podcastów -There are many solutions for you to host your podcasts, some of which are really -great and [a lot of them](https://podcastindex.org/apps) are jumping into the -Podcasting 2.0 wagon just like Castopod! +Istnieje wiele rozwiązań, dzięki którym możesz hostować swoje podcasty, niektóre z nich są naprawdę świetne, a [wiele z nich](https://podcastindex.org/apps) dołącza do ruchu Podcasting 2.0, podobnie jak Castopod! -Each of these solutions differ from one another, you may compare with the -[list of features](#features). +Każde z tych rozwiązań różni się od siebie, możesz porównać je na podstawie [listy funkcji](#funkcje). -That being said, there are two main differences with other podcasting solutions: +W każdym razie istnieją dwie główne różnice między innymi rozwiązaniami podcastowymi: -- Castopod can be self-hosted and is the only solution that allows you to keep - full control over what you produce. Also, as it is open-source, you can even - customize it as you wish. +- Castopod można samodzielnie hostować i to jedyny sposób, który umożliwia pełną kontrolę nad tym, co produkujesz. Ponadto, jako oprogramowanie open-source, masz możliwość modyfikacji go tak, jak chcesz. -- Castopod is the only solution that currently integrates both a decentralized - social network with ActivityPub as well as many of the podcasting 2.0 - features, hoping to bridge the gap between the two. +- Castopod jest jedynym rozwiązaniem, które integruje dzisiaj zarówno zdecentralizowaną sieć społecznościową opartą na ActivityPub, jak i funkcje "Podcasting 2.0", zmniejszając tym samym dystans między nimi. -## Contributing +## Wpływaj -Love Castopod and would like to help? Take a look at the following documentation -to get you started. +Podoba Ci się Castopod i chciałbyś pomóc? Zapoznaj się z dokumentacją, aby rozpocząć. -### Code of conduct +### Kodeks postępowania -Castopod has adopted a Code of Conduct that we expect project participants to -adhere to. Please read the -[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md) -so that you can understand what actions will and will not be tolerated. +Castopod przyjął Kodeks postępowania, którego oczekujemy, że uczestnicy projektu będą przestrzegać. Proszę przeczytać +[Instrukcje CODE_OF_CONDUCT](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md), aby dowiedzieć się, jakie działania będą tolerowane, a jakie nie. -### Contributing guide +### Przewodnik dla blogerów -Read our [contributing guide](./contributing/guidelines.md) to learn about our -development process, how to propose bugfixes and improvements, and how to build -and test your changes to Castopod. +Przeczytaj nasz [przewodnik dla współpracowników](./contributing/guidelines.md), aby dowiedzieć się więcej o naszym procesie rozwoju, jak zgłaszać poprawki i udoskonalać Castopod oraz jak tworzyć i testować zmiany w Castopod. -## Contributors ✨ +## Współpracownicy ✨ -Thanks goes to these wonderful people -([emoji key](https://allcontributors.org/docs/en/emoji-key)): +Podziękowania dla tych wspaniałych ludzi +([klucz emoji](https://allcontributors.org/docs/en/emoji-key)): - + @@ -177,67 +138,9 @@ Thanks goes to these wonderful people - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +
Yassine Doghri
Yassine Doghri

💻 🐛 📖 👀 🚧 🖋 🎨 ️️️️♿️ 🌍 💬 🧑‍🏫 🚇 🤔 📆 📝
Benjamin Bellamy
Benjamin Bellamy

💻 🐛 👀 🖋 🌍 💬 🚇 🤔 📝 📆 📢
Ola Hneini
Ola Hneini

💻 👀 📖 🚧 💬 🤔
Romain de Laage
Romain de Laage

💻 🚇 📖 🌍 🤔
Lyonel Bernard
Lyonel Bernard

🐛 💬 🔊 🤔
Christopher Lagonick-Weitzel
Christopher Lagonick-Weitzel

🐛 💬 🔊 🤔
Ernesto Acosta
Ernesto Acosta

🐛 🔊 🌍 💬 🤔
Bastien Luneteau
Bastien Luneteau

💻 🐛
Cécile Ricordeau
Cécile Ricordeau

🎨
Patryk Miś
Patryk Miś

🌍
Marcin Lewandowski
Marcin Lewandowski

🐛 🤔
Sebastian Janik
Sebastian Janik

💻
Patryk Karczmarczyk
Patryk Karczmarczyk

💻
denis d
denis d

🐛 🤔
Douglas Kastle
Douglas Kastle

🐛 🤔
cExplorer
cExplorer

🐛 🌍
ImaCrea
ImaCrea

🐛 🤔
Jonas S
Jonas S

💻
LEFEBVRE Yann
LEFEBVRE Yann

🐛
Sebastian Späth
Sebastian Späth

🐛 🤔
rocky III
rocky III

🐛
Hermann Josef Eckl
Hermann Josef Eckl

🐛
Delhaye Cyrille
Delhaye Cyrille

🐛 🤔
João Leandro
João Leandro

🌍 🤔
Angelos Chouvardas
Angelos Chouvardas

🌍
Eivind
Eivind

🌍
Ewen
Ewen

🌍 🤔
forght
forght

🌍
glottis0q
glottis0q

🌍
ButterflyOfFire
ButterflyOfFire

🌍
Lucian I. Last
Lucian I. Last

🌍
LuuzViir
LuuzViir

🌍
CTHTC
CTHTC

🌍
Russian Retro
Russian Retro

🌍
Marek L'ach
Marek L'ach

🌍
GunChleoc
GunChleoc

🌍
GabiSnow
GabiSnow

🌍
bendaha
bendaha

🌍
Samuel Roland
Samuel Roland

🌍
Dimitri Regnier
Dimitri Regnier

🤔
irithys
irithys

🌍
Sergi
Sergi

🌍
ghose (XoseM)
ghose (XoseM)

🌍
Andreas Olsson
Andreas Olsson

🌍
leonfrom
leonfrom

🌍
agentcobra
agentcobra

🌍
Alessandro
Alessandro

🌍
liimee
liimee

🌍
Ahmed Sabouni
Ahmed Sabouni

🌍
KrzysztofDomanczyk
KrzysztofDomanczyk

💻
Romain de Laage
Manuel Addo
(French Translation)

👀 🌍
Paweł Mrówczyński
Paweł Mrówczyński
(Polish Translation)

🌍
Adaures
Adaures
(Project Manager)

💻 🐛 🌍 🤔 📆
@@ -247,53 +150,22 @@ Thanks goes to these wonderful people -This project follows the -[all-contributors](https://github.com/all-contributors/all-contributors) -specification. Contributions of any kind welcome! - -## Contact - -You may reach us for help or ask any question you have on: - -- [Discord](https://castopod.org/discord) (for direct interaction with - developers and the community) -- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for - feature requests & bug reports) - -Alternatively, you can follow us on social media platforms to get news about -Castopod: - -- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance) -- [Twitter](https://twitter.com/castopod) -- [LinkedIn](https://linkedin.com/company/castopod) -- [Facebook](https://www.facebook.com/castopod) - -## Sponsors - -The ongoing development of Castopod is made possible with the support of its -backers. If you'd like to help, please consider -[sponsoring Castopod's development](https://opencollective.com/castopod/contribute). +Ten projekt realizowany jest dzięki wsparciu sponsorów. Jeśli chcesz pomóc, rozważ [sponsorowanie rozwoju Castopod](https://opencollective.com/castopod/contribute).
- Ad Aures Logo - NLnet Logo + Logo Ad Aures + Logo NLnet
-## License +## Licencja [GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/) -Copyright © 2020-present, [Ad Aures](https://adaures.com/). -https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release -https://img.shields.io/github/license/ad-aures/castopod?color=blue -https://img.shields.io/badge/contributions-welcome-brightgreen.svg -https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg -https://img.shields.io/github/stars/ad-aures/castopod?style=social - -[release]: https://code.castopod.org/adaures/castopod/-/releases -[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md -[contributions]: https://code.castopod.org/adaures/castopod/-/issues -[semantic-release]: https://github.com/semantic-release/semantic-release -[discord]: https://castopod.org/discord -[stars]: https://github.com/ad-aures/castopod/stargazers -[crowdin]: https://translate.castopod.org/project/castopod +Prawa autorskie © 2020–obecnie, [Ad Aures](https://adaures.com/). +https://img.shields.io/github/v/release/catladyintech/castopod?color=brightgreen&label=release&style=for-the-badge +https://img.shields.io/github/license/ad-aures/castopod?color=blue&style=for-the-badge +https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=for-the-badge +https://img.shields.io/badge/%20%20%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge +https://img.shields.io/badge/discord-join%20us-7289da.svg?logo=discord&logoColor=fff&style=for-the-badge +https://img.shields.io/github/stars/ad-aures/castopod?style=social&style=for-the-badge +https://img.shields.io/crowdin/v/castopod?color=brightgreen&style=for-the-badge diff --git a/docs/src/pt/contributing/_category_.json b/docs/src/pt/contributing/_category_.json index e12f1ce5..12a39ea9 100644 --- a/docs/src/pt/contributing/_category_.json +++ b/docs/src/pt/contributing/_category_.json @@ -1,4 +1,4 @@ { - "label": "Contributing", + "label": "Contribuição", "position": 3 -} +} \ No newline at end of file diff --git a/docs/src/pt/contributing/guidelines.md b/docs/src/pt/contributing/guidelines.md index 1a53c89e..919bae15 100644 --- a/docs/src/pt/contributing/guidelines.md +++ b/docs/src/pt/contributing/guidelines.md @@ -1,154 +1,111 @@ --- -title: Guidelines +title: Orientações --- -# Contributing to Castopod +# Contribuir para o Castopod -Love Castopod and want to help? Thanks so much, there's something to do for -everybody! +Ama o Castopod e quer ajudar? Muito obrigado, há algo para fazer para todos! -Please take a moment to review this document in order to make the contribution -process easy and effective for everyone involved. +Por favor, reserve um momento para ler este documento com o objetivo de tornar o processo de contribuição fácil e eficiente para todos os envolvidos. -Following these guidelines helps to communicate that you respect the time of the -developers managing and developing this open source project. In return, they -should reciprocate that respect in addressing your issue or assessing patches -and features. +Seguir essas orientações ajuda a comunicar que você respeita o tempo dos desenvolvedores que gerenciam e desenvolvem este projeto de código aberto. Em troca, eles devem retribuir esse respeito ao lidar com o seu problema ou avaliar correções e recursos. -::: info Note +::: info Nota -**Any** contribution made on a repository other than -[the original repository](https://code.castopod.org/adaures/castopod) will not -be accepted. +**Qualquer** contribuição feita em um repositório diferente do +[repositório original](https://code.castopod.org/adaures/castopod) não será aceita. ::: -## Using the issue tracker +## Utilizando o rastreador de problemas -The [issue tracker](https://code.castopod.org/adaures/castopod/-/issues) is the -preferred channel for [bug reports](#bug-reports), -[features requests](#feature-requests) and -[submitting pull requests](#pull-requests). +O [rastreador de problemas](https://code.castopod.org/adaures/castopod/-/issues) é o canal preferido para [relatar bugs](#relatar-bugs), [solicitar recursos](#solicitar-recursos) e [enviar solicitações de mesclagem](#solicitações-de-mesclagem). -## ⚠️ Security issues and vulnerabilities +## ⚠️ Problemas de segurança e vulnerabilidades -If you encounter any security issue or vulnerability in the Castopod source, -please contact us directly by email at -[security@castopod.org](mailto:security@castopod.org) +Se encontrar algum problema de segurança ou vulnerabilidade no código-fonte do Castopod, entre em contato diretamente por e-mail em [security@castopod.org](mailto:security@castopod.org) -## Bug reports +## Relatar bugs -A bug is a _demonstrable problem_ that is caused by the code in the repository. -Good bug reports are extremely helpful - thank you! +Um bug é um _problema demonstrável_ causado pelo código no repositório. Relatórios de bugs detalhados são extremamente úteis - obrigado! -Guidelines for bug reports: +Orientações para relatórios de bugs: -1. **Use the issue search** — check if the issue has already been - reported. +1. **Utilize a busca de problemas** — verifique se o problema já foi relatado. -2. **Check if the issue has been fixed** — try to reproduce it using the - latest `main` branch in the repository. +2. **Verifique se o problema foi corrigido** — tente reproduzi-lo usando o branch `main` mais recente no repositório. -3. **Isolate the problem** — ideally create a - [reduced test case](https://css-tricks.com/reduced-test-cases/) and a live - example. +3. **Isolar o problema** — idealmente, crie um [caso de teste reduzido](https://css-tricks.com/reduced-test-cases/) e um exemplo ao vivo. -A good bug report shouldn't leave others needing to chase you up for more -information. Please try to be as detailed as possible in your report. What is -your environment? What steps will reproduce the issue? What browser(s) and OS -experience the problem? What would you expect to be the outcome? All these -details will help people to fix any potential bugs. +Um bom relatório de bug não deve deixar que outros precisem pedir mais informações. Por favor, tente ser o mais detalhado possível em seu relatório. Qual é o seu ambiente? Quais etapas reproduzem o problema? Quais navegadores e sistemas operacionais apresentam o problema? O que você espera que seja o resultado final? Todos esses detalhes ajudarão as pessoas a corrigir eventuais bugs. -> [Issue templates](https://docs.gitlab.com/ee/user/project/description_templates.html#using-the-templates) -> have been created for this project. You may use them to help you follow those -> guidelines. +> [Modelos de problemas](https://docs.gitlab.com/ee/user/project/description_templates.html#using-the-templates) foram criados para este projeto. Você pode usá-los para ajudá-lo a seguir essas orientações. -## Feature requests +## Solicitar recursos -Feature requests are welcome. But take a moment to find out whether your idea -fits with the scope and aims of the project. It's up to _you_ to make a strong -case to convince the project's developers of the merits of this feature. Please -provide as much detail and context as possible. +Solicitações de recursos são bem-vindas. Mas tire um momento para descobrir se sua ideia se encaixa no escopo e nos objetivos do projeto. Cabe a **você** apresentar um forte argumento para convencer os desenvolvedores do projeto dos méritos deste recurso. Por favor, forneça o máximo de detalhes e contexto possível. -## Pull requests +## Solicitações de mesclagem -Good pull requests - patches, improvements, new features - are a fantastic help. -They should remain focused in scope and avoid containing unrelated commits. +Solicitações de mesclagem são de grande ajuda. Elas devem permanecer focadas no escopo e evitar a inclusão de commits não relacionados. -**Please ask first** before embarking on any significant pull request (e.g. -implementing features, refactoring code, porting to a different language), -otherwise you risk spending a lot of time working on something that the -project's developers might not want to merge into the project. +**Por favor, pergunte primeiro** antes de começar qualquer solicitação de mesclagem significativa (por exemplo, implementar recursos, refatorar código, portar para uma linguagem diferente), caso contrário, você corre o risco de gastar muito tempo trabalhando em algo que os desenvolvedores do projeto não queiram mesclar. -Please adhere to the coding conventions used throughout a project (indentation, -accurate comments, etc.) and any other requirements (such as test coverage). +Por favor, adira às convenções de codificação utilizadas em todo o projeto (indentação, comentários precisos, etc.) e a quaisquer outros requisitos (como cobertura de testes). -Adhering to the following process is the best way to get your work included in -the project: +Seguir o processo a seguir é a melhor maneira de incluir seu trabalho no projeto: -1. [Fork](https://docs.gitlab.com/ee/gitlab-basics/fork-project.html) the - project, clone your fork, and configure the remotes: +1. [Fork](https://docs.gitlab.com/ee/gitlab-basics/fork-project.html) o + projeto, clone seu fork e configure os remotos: ```bash -# Clone your fork of the repo into the current directory -git clone https://code.castopod.org//castopod.git +# Clone o fork do repositório para o diretório atual +git clone https://code.castopod.org//castopod.git -# Navigate to the newly cloned directory +# Navegue até o diretório recém-clonado cd castopod -# Assign the original repo to a remote called "upstream" +# Atribua o repositório original a um remoto chamado "upstream" git remote add upstream https://code.castopod.org/adaures/castopod.git ``` -2. If you cloned a while ago, get the latest changes from upstream: +2. Se você clonou há algum tempo, obtenha as alterações mais recentes do repositório original: ```bash git checkout main git pull upstream main ``` -3. Create a new topic branch (off the `main` branch) to contain your feature, - change, or fix: +3. Crie um novo branch de tópico (a partir do branch `main`) para conter sua alteração, mudança ou correção: ```bash -git checkout -b +git checkout -b ``` -4. Commit your changes in logical chunks. Please adhere to these - [git commit message guidelines](https://conventionalcommits.org/) or your - code is unlikely be merged into the main project. Use Git's - [interactive rebase](https://help.github.com/articles/about-git-rebase/) - feature to tidy up your commits before making them public. +4. Comite suas alterações em pedaços lógicos. Por favor, siga estas [orientações de mensagem de commit do Git](https://conventionalcommits.org/) ou seu código provavelmente não será mesclado no projeto principal. Use o recurso de [rebase interativo do Git](https://help.github.com/articles/about-git-rebase/) para organizar seus commits antes de torná-los públicos. -5. Locally merge (or rebase) the upstream dev branch into your topic branch: +5. Una localmente (ou rebase) o branch de desenvolvimento original no seu branch de tópico: ```bash git pull [--rebase] upstream main ``` -6. Push your topic branch up to your fork: +6. Faça push do seu branch de tópico para o seu fork: ```bash -git push origin +git push origin ``` -7. [Open a Pull Request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html#new-merge-request-from-a-fork) - with a clear title and description. +7. [Abra uma solicitação de mesclagem](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html#new-merge-request-from-a-fork) + com um título e descrição claros. -**IMPORTANT**: By submitting a patch, you agree to allow the project owners to -license your work under the terms of the -[GNU AGPLv3](https://code.castopod.org/adaures/castopod/-/blob/main/LICENSE). +**IMPORTANTE**: Ao enviar uma correção, você concorda em permitir que os proprietários do projeto licenciem seu trabalho nos termos da [GNU AGPLv3](https://code.castopod.org/adaures/castopod/-/blob/main/LICENSE). -## Collaborating guidelines +## Orientações de colaboração -There are few basic rules to ensure high quality of the project: +Existem algumas regras básicas para garantir a alta qualidade do projeto: -- Before merging, a PR requires at least two approvals from the collaborators - unless it's an architectural change, a large feature, etc. If it is, then at - least 50% of the core team have to agree to merge it, with every team member - having a full veto right. (i.e. every single one can block any PR) -- A PR should remain open for at least two days before merging (does not apply - for trivial contributions like fixing a typo). This way everyone has enough - time to look into it. +- Antes de efetuar a mesclagem, um PR requer pelo menos duas aprovações dos colaboradores, a menos que seja uma mudança arquitetônica, um recurso grande, etc. Se for, pelo menos 50% da equipe principal deve concordar em mesclá-la, com cada membro da equipe tendo direito a um veto completo. (ou seja, cada um pode bloquear qualquer PR) +- Um PR deve permanecer aberto por pelo menos dois dias antes de ser mesclado (não se aplica a contribuições triviais, como corrigir um erro de digitação). Dessa forma, todos têm tempo suficiente para examiná-lo. -You are always welcome to discuss and propose improvements to this guideline. +Você é sempre bem-vindo para discutir e propor melhorias a estas orientações. \ No newline at end of file diff --git a/docs/src/pt/contributing/setup-development.md b/docs/src/pt/contributing/setup-development.md index 7e42892a..656d8efd 100644 --- a/docs/src/pt/contributing/setup-development.md +++ b/docs/src/pt/contributing/setup-development.md @@ -1,45 +1,40 @@ --- -title: Development setup +title: Configuração do ambiente de desenvolvimento sidebarDepth: 3 --- -# Setup your development environment +# Configurar o seu ambiente de desenvolvimento -## Introduction +## Introdução -Castopod is a web app based on the `php` framework -[CodeIgniter 4](https://codeigniter.com). +O Castopod é um aplicativo da web baseado no framework `php` [CodeIgniter 4](https://codeigniter.com). -We use [Docker](https://www.docker.com/) quickly setup a dev environment. A -`docker-compose.yml` and `Dockerfile` are included in the project's root folder -to help you kickstart your contribution. +Usamos o [Docker](https://www.docker.com/) para configurar rapidamente um ambiente de desenvolvimento. Um arquivo `docker-compose.yml` e um `Dockerfile` estão incluídos na pasta raiz do projeto para ajudar você a iniciar sua contribuição. -> You don't need any prior knowledge of Docker to follow the next steps. -> However, if you wish to use your own environment, feel free to do so! +> Você não precisa de nenhum conhecimento prévio sobre o Docker para seguir as próximas etapas. No entanto, se você preferir usar seu próprio ambiente, fique à vontade! -## Setup instructions +## Instruções para configuração -### 1. Pre-requisites +### 1. Pré-requisitos -0. Install [docker](https://docs.docker.com/get-docker). +0. Instale o [docker](https://docs.docker.com/get-docker). -1. Clone Castopod project by running: +1. Clone o projeto Castopod executando o seguinte comando: ```bash git clone https://code.castopod.org/adaures/castopod.git ``` -2. Create a `.env` file with the minimum required config to connect the app to - the database and use redis as a cache handler: +2. Crie um arquivo `.env` com a configuração mínima necessária para conectar o aplicativo ao banco de dados e usar o Redis como manipulador de cache: ```ini CI_ENVIRONMENT="development" - # If set to development, you must run `npm run dev` to start the static assets server + # Se definido como development, você deve executar `npm run dev` para iniciar o servidor de ativos estáticos vite.environment="development" - # By default, this is set to true in the app config. - # For development, this must be set to false as it is - # on a local environment + # Por padrão, isso é definido como true no arquivo de configuração do aplicativo. + # Para desenvolvimento, isso deve ser definido como false, pois é + # em um ambiente local app.forceGlobalSecureRequests=false app.baseURL="http://localhost:8080/" @@ -56,368 +51,93 @@ to help you kickstart your contribution. cache.handler="redis" cache.redis.host = "redis" - # You may not want to use redis as your cache handler - # Comment/remove the two lines above and uncomment - # the next line for file caching. - #cache.handler="file" + # Talvez você não queira usar o Redis como manipulador de cache. + # Comente/remova as duas linhas acima e descomente + # a próxima linha para cache de arquivo. + # cache.handler="file" ``` - > _NB._ You can tweak your environment by setting more environment variables - > in your custom `.env` file. See the `env` for examples or the - > [CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html) - > for more info. + > _NB._ Você pode ajustar seu ambiente definindo mais variáveis de ambiente em seu arquivo `.env` personalizado. Consulte o arquivo `env` para exemplos ou o [Guia do Usuário do CodeIgniter4](https://codeigniter.com/user_guide/index.html) para obter mais informações. -3. (for docker desktop) Add the repository you've cloned to docker desktop's - `Settings` > `Resources` > `File Sharing` +3. (para desktop Docker) Adicione o repositório clonado a `Configurações` > `Recursos` > `Compartilhamento de Arquivos` do Docker Desktop -### 2. (recommended) Develop inside the app Container with VSCode +### 2. (recomendado) Desenvolver dentro do contêiner do aplicativo com o VSCode -If you're working in VSCode, you can take advantage of the `.devcontainer/` -folder. It defines a development environment (dev container) with preinstalled -requirements and VSCode extensions so you don't have to worry about them. All -required services will be loaded automagically! 🪄 +Se você estiver trabalhando no VSCode, pode aproveitar a pasta `.devcontainer/`. Ela define um ambiente de desenvolvimento (contêiner de desenvolvimento) com requisitos e extensões pré-instalados do VSCode para que você não precise se preocupar com eles. Todos os serviços necessários serão carregados automaticamente! 🪄 -1. Install the VSCode extension - [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) +1. Instale a extensão do VSCode [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) 2. `Ctrl/Cmd + Shift + P` > `Open in container` - > The VSCode window will reload inside the dev container. Expect several - > minutes during first load as it is building all necessary services. + > A janela do VSCode será recarregada dentro do contêiner de desenvolvimento. Aguarde vários minutos durante a primeira carga, pois todos os serviços necessários estão sendo construídos. - **Note**: The dev container will start by running Castopod's php server. - During development, you will have to start [Vite](https://vitejs.dev)'s dev - server for compiling the typescript code and styles: + **Observação**: O contêiner de desenvolvimento será iniciado executando o servidor php do Castopod. Durante o desenvolvimento, você precisará iniciar o servidor de desenvolvimento do [Vite](https://vitejs.dev) para compilar o código TypeScript e os estilos: ```bash - # run Vite dev server + # execute o servidor de desenvolvimento do Vite npm run dev ``` - If there is any issue with the php server not running, you can restart them - using the following commands: + Se houver algum problema com o servidor php não sendo executado, você pode reiniciá-lo usando os comandos a seguir: ```bash - # run Castopod server + # execute o servidor Castopod php spark serve - 0.0.0.0 ``` -3. You're all set! 🎉 +3. Está tudo pronto! 🎉 - You're now **inside the dev container**, you may use the VSCode console - (`Terminal` > `New Terminal`) to run any command: + Agora você está **dentro do contêiner de desenvolvimento** e pode usar o console do VSCode (`Terminal` > `Novo Terminal`) para executar qualquer comando: ```bash - # PHP is installed + # O PHP está instalado php -v - # Composer is installed + # O Composer está instalado composer -V - # npm is installed + # O npm está instalado npm -v - # git is installed + # O git está instalado git version ``` -For more info, see -[VSCode Remote Containers](https://code.visualstudio.com/docs/remote/containers) +Para mais informações, consulte [VSCode Remote Containers](https://code.visualstudio.com/docs/remote/containers) -### 3. Start hacking +### 3. Começando a desenvolver -You're all set! Start working your magic by updating the project's files! Help -yourself to the -[CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html) for -more insights. +Está tudo pronto! Comece a trabalhar atualizando os arquivos do projeto! Consulte o [Guia do Usuário do CodeIgniter4](https://codeigniter.com/user_guide/index.html) para obter mais informações. -To see your changes, go to: +Para ver suas alterações, acesse: -- `http://localhost:8080/` for the Castopod app -- `http://localhost:8888/` for the phpmyadmin interface: +- `http://localhost:8080/` para o aplicativo Castopod +- `http://localhost:8888/` para a interface phpmyadmin: - - username: **castopod** - - password: **castopod** + - nome de usuário: **castopod** + - senha: **castopod** -### 2-alt. Develop outside the app container +### 2-alt. Desenvolver fora do contêiner do aplicativo -You do not wish to use the VSCode devcontainer? No problem! +Você não deseja usar o contêiner de desenvolvimento do VSCode? Sem problemas! -1. Start docker containers manually: +1. Inicie manualmente os contêineres do Docker: - Go to project's root folder and run: + Vá para a pasta raiz do projeto e execute o seguinte comando: ```bash - # starts all services declared in docker-compose.yml file - # -d option starts the containers in the background + # inicie todos os serviços declarados no arquivo docker-compose.yml + # a opção -d inicia os contêineres em segundo plano docker-compose up -d - # See all running processes (you should see 3 processes running) + # Veja todos os processos em execução (você deve ver 3 processos em execução) docker-compose ps - # Alternatively, you can check all docker processes + # Alternativamente, você pode verificar todos os processos do Docker em execução docker ps -a ``` - > The `docker-compose up -d` command will boot 4 containers in the - > background: + > O comando `docker-compose up -d` inicializará os 4 contêineres em segundo plano: > - > - `castopod_app`: a php based container with Castopod requirements - > installed - > - `castopod_redis`: a [redis](https://redis.io/) database to handle queries - > and pages caching - > - `castopod_mariadb`: a [mariadb](https://mariadb.org/) server for - > persistent data - > - `castopod_phpmyadmin`: a phpmyadmin server to visualize the mariadb - > database. - -2. Run any command inside the containers by prefixing them with - `docker-compose run --rm app`: - - ```bash - # use PHP - docker-compose run --rm app php -v - - # use Composer - docker-compose run --rm app composer -V - - # use npm - docker-compose run --rm app npm -v - - # use git - docker-compose run --rm app git version - ``` - ---- - -## Going Further - -### Install Castopod's dependencies - -1. Install php dependencies with [Composer](https://getcomposer.org/) - - ```bash - composer install - ``` - - ::: info Note - - The php dependencies aren't included in the repository. Composer will check - the `composer.json` and `composer.lock` files to download the packages with - the right versions. The dependencies will live under the `vendor/` folder. - For more info, check out the - [Composer documentation](https://getcomposer.org/doc/). - - ::: - -2. Install javascript dependencies with [npm](https://www.npmjs.com/) - - ```bash - npm install - ``` - - ::: info Note - - The javascript dependencies aren't included in the repository. Npm will check - the `package.json` and `package.lock` files to download the packages with the - right versions. The dependencies will live under the `node_module` folder. - For more info, check out the [NPM documentation](https://docs.npmjs.com/). - - ::: - -3. Generate static assets: - - ```bash - # build all static assets at once - npm run build:static - - # build specific assets - npm run build:icons - npm run build:svg - ``` - - ::: info Note - - The static assets generated live under the `public/assets` folder, it - includes javascript, styles, images, fonts, icons and svg files. - - ::: - -### Initialize and populate database - -::: tip Tip - -You may skip this section if you go through the install wizard (go to -`/cp-install`). - -::: - -1. Build the database with the migrate command: - - ```bash - # loads the database schema during first migration - php spark migrate -all - ``` - - You may need to undo the migration (rollback): - - ```bash - # rolls back database schema (deletes all tables and their content) - php spark migrate:rollback - ``` - -2. Populate the database with the required data: - - ```bash - # Populates all required data - php spark db:seed AppSeeder - ``` - - You may choose to add data separately: - - ```bash - # Populates all categories - php spark db:seed CategorySeeder - - # Populates all Languages - php spark db:seed LanguageSeeder - - # Populates all podcasts platforms - php spark db:seed PlatformSeeder - - # Populates all Authentication data (roles definition…) - php spark db:seed AuthSeeder - ``` - -3. (optionnal) Populate the database with test data: - - - Populate test data (login: admin / password: AGUehL3P) - - ```bash - php spark db:seed TestSeeder - ``` - - - Populate with fake podcast analytics: - - ```bash - php spark db:seed FakePodcastsAnalyticsSeeder - ``` - - - Populate with fake website analytics: - - ```bash - php spark db:seed FakeWebsiteAnalyticsSeeder - ``` - - TestSeeder will add an active superadmin user with the following credentials: - - - username: **admin** - - password: **AGUehL3P** - -### Useful docker / docker-compose commands - -- Monitor the app container: - -```bash -docker-compose logs --tail 50 --follow --timestamps app -``` - -- Interact with redis server using included redis-cli command: - -```bash -docker exec -it castopod_redis redis-cli -``` - -- Monitor the redis container: - -```bash -docker-compose logs --tail 50 --follow --timestamps redis -``` - -- Monitor the mariadb container: - -```bash -docker-compose logs --tail 50 --follow --timestamps mariadb -``` - -- Monitor the phpmyadmin container: - -```bash -docker-compose logs --tail 50 --follow --timestamps phpmyadmin -``` - -- Restart docker containers: - -```bash -docker-compose restart -``` - -- Destroy all containers, opposite of `up` command: - -```bash -docker-compose down -``` - -- Rebuild app container: - -```bash -docker-compose build app -``` - -Check [docker](https://docs.docker.com/engine/reference/commandline/docker/) and -[docker-compose](https://docs.docker.com/compose/reference/) documentations for -more insights. - -## Known issues - -### Allocation failed - JavaScript heap out of memory - -This happens when running `npm install`. - -👉 By default, docker might not have access to enough RAM. Allocate more memory -and run `npm install` again. - -### (Linux) Files created inside container are attributed to root locally - -You may use Linux user namespaces to fix this on your machine: - -::: info Note - -Replace "username" with your local username - -::: - -1. Go to `/etc/docker/daemon.json` and add: - - ```json - { - "userns-remap": "username" - } - ``` - -2. Configure the subordinate uid/guid: - - ```bash - # in /etc/subuid - username:1000:1 - username:100000:65536 - ``` - - ```bash - # in /etc/subgid - username:1000:1 - username:100000:65536 - ``` - -3. Restart docker: - - ```bash - sudo systemctl restart docker - ``` - -4. That's it! Now, the root user in the container will be mapped to the user on - your local machine, no more permission issues! 🎉 - -You can check -[this great article](https://www.jujens.eu/posts/en/2017/Jul/02/docker-userns-remap/) -to know more about how it works. + > - `castopod_app`: um contêiner baseado em PHP com os requisitos do Castopod instalados + \ No newline at end of file diff --git a/docs/src/pt/getting-started/_category_.json b/docs/src/pt/getting-started/_category_.json index 877a378f..3bf9307b 100644 --- a/docs/src/pt/getting-started/_category_.json +++ b/docs/src/pt/getting-started/_category_.json @@ -1,4 +1,4 @@ { - "label": "Getting Started", + "label": "Começando", "position": 2 -} +} \ No newline at end of file diff --git a/docs/src/pt/getting-started/auth.md b/docs/src/pt/getting-started/auth.md index ff5d59c0..ac6d0636 100644 --- a/docs/src/pt/getting-started/auth.md +++ b/docs/src/pt/getting-started/auth.md @@ -1,87 +1,87 @@ --- -title: Authentication & Authorization +title: Autenticação e Autorização sidebarDepth: 3 --- -# Authentication & Authorization +# Autenticação e Autorização -Castopod handles authentication and authorization using `codeigniter/shield` -coupled with custom rules. Roles and permissions are defined at two levels: +O Castopod gerencia autenticação e autorização usando o `codeigniter/shield` em conjunto com regras personalizadas. As funções e permissões são definidas em dois níveis: -1. [instance wide](#1-instance-wide-roles-and-permissions) -2. [per podcast](#2-per-podcast-roles-and-permissions) +1. [Em nível de instância](#1-funções-e-permissões-em-nível-de-instância) +2. [Por podcast](#2-funções-e-permissões-por-podcast) -## 1. Instance wide roles and permissions +## 1. Funções e permissões em nível de instância -### Instance roles +### Funções na instância -| role | description | permissions | -| ----------- | ----------------------------------- | ------------------------------------------------------------------------------------------ | -| Super admin | Has complete control over Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks | -| Manager | Manages Castopod's content. | podcasts.create, podcasts.import, persons.manage, pages.manage | -| Podcaster | General users of Castopod. | admin.access | +| função | descrição | permissões | +| ------------- | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| Super admin | Tem controle total sobre o Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks | +| Gerente | Gerencia o conteúdo do Castopod. | podcasts.create, podcasts.import, persons.manage, pages.manage | +| Podcaster | Usuários gerais do Castopod. | admin.access | + -### Instance permissions +### Permissões na instância -| permission | description | -| ----------------------- | ------------------------------------------------------------------ | -| admin.access | Can access the Castopod admin area. | -| admin.settings | Can access the Castopod settings. | -| users.manage | Can manage Castopod users. | -| persons.manage | Can manage persons. | -| pages.manage | Can manage pages. | -| podcasts.view | Can view all podcasts. | -| podcasts.create | Can create new podcasts. | -| podcasts.import | Can import podcasts. | -| fediverse.manage-blocks | Can block fediverse actors/domains from interacting with Castopod. | +| permissão | descrição | +| ----------------------- | ------------------------------------------------------------------------------- | +| admin.access | Pode acessar a área administrativa do Castopod. | +| admin.settings | Pode acessar as configurações do Castopod. | +| users.manage | Pode gerenciar os usuários do Castopod. | +| persons.manage | Pode gerenciar pessoas. | +| pages.manage | Pode gerenciar páginas. | +| podcasts.view | Pode visualizar todos os podcasts. | +| podcasts.create | Pode criar novos podcasts. | +| podcasts.import | Pode importar podcasts. | +| fediverse.manage-blocks | Pode bloquear atores/domínios fediverse de interagir com o Castopod. | -## 2. Per podcast roles and permissions +## 2. Funções e permissões por podcast -### Per podcast roles +### Funções por podcast -| role | description | permissions | -| ------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Admin | Has complete control of podcast #{id}. | \* | -| Editor | Manages content and publications of podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments | -| Author | Manages content of podcast #{id} but cannot publish them. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips | -| Guest | General contributor of the podcast #{id}. | view, episodes.view | +| função | descrição | permissões | +| --------- | --------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Admin | Tem controle total sobre o podcast #{id}. | \* | +| Editor | Gerencia o conteúdo e publicações do podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments | +| Autor | Gerencia o conteúdo do podcast #{id}, sem publicar. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips | +| Convidado | Contribuidor geral do podcast #{id}. | view, episodes.view | -### Per podcast permissions +### Permissões por podcast -| permission | description | -| ---------------------------- | ------------------------------------------------------------------------ | -| view | Can view dashboard and analytics of podcast #{id}. | -| edit | Can edit podcast #{id}. | -| delete | Can delete podcast #{id}. | -| manage-import | Can synchronize imported podcast #{id}. | -| manage-persons | Can manage subscriptions of podcast #{id}. | -| manage-subscriptions | Can manage subscriptions of podcast #{id}. | -| manage-contributors | Can manage contributors of podcast #{id}. | -| manage-platforms | Can set/remove platform links of podcast #{id}. | -| manage-publications | Can publish podcast #{id}. | -| manage-notifications | Can view and mark notifications as read for podcast #{id}. | -| interact-as | Can interact as the podcast #{id} to favourite, share or reply to posts. | -| episodes.view | Can view dashboard and analytics of podcast #{id}. | -| episodes.create | Can create episodes for podcast #{id}. | -| episodes.edit | Can edit podcast #{id}. | -| episodes.delete | Can delete podcast #{id}. | -| episodes.manage-persons | Can manage subscriptions of podcast #{id}. | -| episodes.manage-clips | Can manage video clips or soundbites of podcast #{id}. | -| episodes.manage-publications | Can publish podcast #{id}. | -| episodes.manage-comments | Can create/remove episode comments of podcast #{id}. | +| permissão | descrição | +| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------- | +| view | Pode visualizar o painel e análise do podcast #{id}. | +| edit | Pode editar o podcast #{id}. | +| delete | Pode excluir o podcast #{id}. | +| manage-imports | Pode sincronizar o podcast importado #{id}. | +| manage-persons | Pode gerenciar inscritos no podcast #{id}. | +| manage-subscriptions | Pode gerenciar inscrições no podcast #{id}. | +| manage-contributors | Pode gerenciar os contribuidores do podcast #{id}. | +| manage-platforms | Pode configurar/remover links para plataformas no podcast #{id}. | +| manage-publications | Pode publicar o podcast #{id}. | +| manage-notifications | Pode visualizar e marcar notificações como lidas para o podcast #{id}. | +| interact-as | Pode interagir como o podcast #{id} para adicionar, compartilhar ou responder mensagens. | +| episodes.view | Pode visualizar o painel e análise do podcast #{id}. | +| episodes.create | Pode criar episódios para o podcast #{id}. | +| episodes.edit | Pode editar o podcast #{id}. | +| episodes.delete | Pode excluir o podcast #{id}. | +| episodes.manage-persons | Pode gerenciar inscritos no podcast #{id}. | +| episodes.manage-clips | Pode gerenciar clipes de vídeo ou trechos de áudio no podcast #{id}. | +| episodes.manage-publications | Pode publicar o podcast #{id}. | +| episodes.manage-comments | Pode criar/excluir comentários no episódio do podcast #{id}. | - + \ No newline at end of file diff --git a/docs/src/pt/getting-started/docker.md b/docs/src/pt/getting-started/docker.md index 75158bd6..978fd4a2 100644 --- a/docs/src/pt/getting-started/docker.md +++ b/docs/src/pt/getting-started/docker.md @@ -1,158 +1,148 @@ --- -title: Official Docker images +title: Imagens Oficiais Docker sidebarDepth: 3 --- -# Official Docker images +# Imagens Oficiais Docker -Castopod pushes 3 Docker images to the Docker Hub during its automated build -process: +O Castopod envia 3 imagens Docker para o Hub Docker como parte de seu processo de construção automatizada: -- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): an all - in one castopod image using nginx unit -- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): the app bundle - with all of Castopod dependencies -- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an - Nginx configuration for Castopod +- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): uma imagem all in one do Castopod usando o nginx unit +- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): o pacote de aplicação com todas as dependências do Castopod +- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): uma configuração do Nginx para o Castopod -Additionally, Castopod requires a MySQL-compatible database. A Redis database -can be added as a cache handler. +Além disso, o Castopod requer um banco de dados compatível com o MySQL. Um banco de dados Redis pode ser adicionado como gerenciador de cache. -## Supported tags +## Tags Suportadas -- `develop` [unstable], latest development branch build -- `beta` [stable], latest beta version build -- `latest` [stable], latest version build -- `1.x.x` [stable], specific version build (since `1.0.0`) +- `develop` [unstable], a versão mais recente do branch de desenvolvimento +- `beta` [stable], última versão beta +- `1.x.x` [stable], versão específica (a partir da `1.0.0`) -## Example usage +## Exemplo de Uso -1. Install [docker](https://docs.docker.com/get-docker/) and - [docker-compose](https://docs.docker.com/compose/install/) -2. Create a `docker-compose.yml` file with the following: +1. Instale o [docker](https://docs.docker.com/get-docker/) e o [docker-compose](https://docs.docker.com/compose/install/) +2. Crie um arquivo `docker-compose.yml` com o seguinte conteúdo: - ```yml - version: "3.7" + ```yml + version: "3.7" - services: - app: - image: castopod/castopod:latest - container_name: "castopod-app" - volumes: - - castopod-media:/var/www/castopod/public/media - environment: - MYSQL_DATABASE: castopod - MYSQL_USER: castopod - MYSQL_PASSWORD: changeme - CP_BASEURL: "https://castopod.example.com" - CP_ANALYTICS_SALT: changeme - CP_CACHE_HANDLER: redis - CP_REDIS_HOST: redis - networks: - - castopod-app - - castopod-db - ports: - - 8000:8000 - restart: unless-stopped + services: + app: + image: castopod/castopod:latest + container_name: "castopod-app" + volumes: + - castopod-media:/var/www/castopod/public/media + environment: + MYSQL_DATABASE: castopod + MYSQL_USER: castopod + MYSQL_PASSWORD: changeme + CP_BASEURL: "https://castopod.example.com" + CP_ANALYTICS_SALT: changeme + CP_CACHE_HANDLER: redis + CP_REDIS_HOST: redis + networks: + - castopod-app + - castopod-db + ports: + - 8000:8000 + restart: unless-stopped - mariadb: - image: mariadb:10.5 - container_name: "castopod-mariadb" - networks: - - castopod-db - volumes: - - castopod-db:/var/lib/mysql - environment: - MYSQL_ROOT_PASSWORD: changeme - MYSQL_DATABASE: castopod - MYSQL_USER: castopod - MYSQL_PASSWORD: changeme - restart: unless-stopped + mariadb: + image: mariadb:10.5 + container_name: "castopod-mariadb" + networks: + - castopod-db + volumes: + - castopod-db:/var/lib/mysql + environment: + MYSQL_ROOT_PASSWORD: changeme + MYSQL_DATABASE: castopod + MYSQL_USER: castopod + MYSQL_PASSWORD: changeme + restart: unless-stopped - redis: - image: redis:7.0-alpine - container_name: "castopod-redis" - volumes: - - castopod-cache:/data - networks: - - castopod-app + redis: + image: redis:7.0-alpine + container_name: "castopod-redis" + volumes: + - castopod-cache:/data + networks: + - castopod-app - volumes: - castopod-media: - castopod-db: - castopod-cache: + volumes: + castopod-media: + castopod-db: + castopod-cache: - networks: - castopod-app: - castopod-db: - ``` + networks: + castopod-app: + castopod-db: + ``` - You have to adapt some variables to your needs (e.g. `CP_BASEURL`, - `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` and `CP_ANALYTICS_SALT`). + Você precisará ajustar algumas variáveis de acordo com suas necessidades (ex: `CP_BASEURL`, `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` e `CP_ANALYTICS_SALT`). -3. Setup a reverse proxy for TLS (SSL/HTTPS) +3. Configure um proxy reverso para TLS (SSL/HTTPS) - TLS is mandatory for ActivityPub to work. This job can easily be handled by - a reverse proxy, for example with [Caddy](https://caddyserver.com/): + O TLS é obrigatório para o ActivityPub funcionar. Essa tarefa pode ser facilmente resolvida com um proxy reverso, por exemplo usando o [Caddy](https://caddyserver.com/): - ``` - #castopod - castopod.example.com { - reverse_proxy localhost:8000 - } - ``` + ``` + #castopod + castopod.example.com { + reverse_proxy localhost:8000 + } + ``` -4. Run `docker-compose up -d`, wait for it to initialize and head on to - `https://castopod.example.com/cp-install` to finish setting up Castopod! +4. Execute `docker-compose up -d`, espere que esteja pronto em `https://castopod.example.com/cp-install` para finalizar a configuração do Castopod! -5. You're all set, start podcasting! 🎙️🚀 +5. Está tudo pronto, comece a podcastar! 🎙️🚀 -## Environment Variables +## Variáveis de Ambiente -- **castopod/castopod** and **castopod/app** +- **castopod/castopod** e **castopod/app** - | Variable name | Type (`default`) | Default | - | ------------------------------------- | ----------------------- | ---------------- | - | **`CP_BASEURL`** | string | `undefined` | - | **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` | - | **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` | - | **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` | - | **`CP_ANALYTICS_SALT`** | string | `undefined` | - | **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` | - | **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` | - | **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` | - | **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` | - | **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` | - | **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` | - | **`CP_REDIS_HOST`** | ?string | `"localhost"` | - | **`CP_REDIS_PASSWORD`** | ?string | `null` | - | **`CP_REDIS_PORT`** | ?number | `6379` | - | **`CP_REDIS_DATABASE`** | ?number | `0` | - | **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` | - | **`CP_EMAIL_FROM`** | ?string | `undefined` | - | **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` | - | **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` | - | **`CP_EMAIL_SMTP_PORT`** | ?number | `25` | - | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` | - | **`CP_ENABLE_2FA`** | ?boolean | `undefined` | - | **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` | - | **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` | - | **`CP_MEDIA_S3_KEY`** | ?string | `undefined` | - | **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` | - | **`CP_MEDIA_S3_REGION`** | ?string | `undefined` | - | **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` | - | **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` | - | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` | - | **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` | - | **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` | - | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | - | **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` | - | **`CP_TIMEOUT`** | ?number | `900` | + | Nome da Variável | Tipo (`default`) | Valor Padrão | + | ------------------------------------ | ----------------------- | ---------------- | + | **`CP_BASEURL`** | string | `undefined` | + | **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` | + | **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` | + | **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` | + | **`CP_ANALYTICS_SALT`** | string | `undefined` | + | **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` | + | **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` | + | **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` | + | **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` | + | **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` | + | **`CP_CACHE_HANDLER`** | [`"file"` ou `"redis"`] | `"file"` | + | **`CP_REDIS_HOST`** | ?string | `"localhost"` | + | **`CP_REDIS_PASSWORD`** | ?string | `null` | + | **`CP_REDIS_PORT`** | ?number | `6379` | + | **`CP_REDIS_DATABASE`** | ?number | `0` | + | **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` | + | **`CP_EMAIL_FROM`** | ?string | `undefined` | + | **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` | + | **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` | + | **`CP_EMAIL_SMTP_PORT`** | ?number | `25` | + | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` ou `"ssl"`] | `"tls"` | + | **`CP_ENABLE_2FA`** | ?boolean | `undefined` | + | **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` | + | **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` | + | **`CP_MEDIA_S3_KEY`** | ?string | `undefined` | + | **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` | + | **`CP_MEDIA_S3_REGION`** | ?string | `undefined` | + | **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` | + | **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` | + | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`**| ?boolean | `undefined` | + | **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` | + | **`CP_DISABLE_HTTPS`** | ?[`0` ou `1`] | `undefined` | + | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | + | **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` | + | **`CP_TIMEOUT`** | ?number | `900` | - **castopod/web-server** - | Variable name | Type | Default | - | ---------------------- | --------------------- | ------- | - | **`CP_APP_HOSTNAME`** | ?string | `"app"` | - | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | - | **`CP_TIMEOUT`** | ?number | `900` | + | Nome da Variável | Tipo | Valor Padrão | + | ------------------------ | --------------------- | ------------ | + | **`CP_APP_HOSTNAME`** | ?string | `"app"` | + | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | + | **`CP_TIMEOUT`** | ?number | `900` | \ No newline at end of file diff --git a/docs/src/pt/getting-started/install.md b/docs/src/pt/getting-started/install.md index 3ce3cf7a..aefc1a81 100644 --- a/docs/src/pt/getting-started/install.md +++ b/docs/src/pt/getting-started/install.md @@ -1,223 +1,123 @@ --- -title: Installation +title: Instalação sidebarDepth: 3 --- -# How to install Castopod? +# Como instalar o Castopod -Castopod was thought-out to be easy to install. Whether using dedicated or -shared hosting, you can install it on most PHP-MySQL compatible web servers. +O Castopod foi projetado para ser fácil de instalar. Se você estiver usando um +hospedagem dedicada ou compartilhada, você pode instalá-lo na maioria dos +servidores web compatíveis com PHP-MySQL. -::: tip Note +::: tip Nota -We've released official Docker images for Castopod! +Publicamos imagens oficiais do Docker para o Castopod! -If you prefer using Docker, you may skip this and go straight to the -[docker documentation](./docker.md) for Castopod. +Se você preferir usar o Docker, você pode pular esta parte e ir diretamente para a [documentação Docker](./docker.md) para o Castopod. ::: -## Requirements +## Pré-requisitos -- PHP v8.1 only -- MySQL version 5.7 or higher or MariaDB version 10.2 or higher -- HTTPS support -- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - incoming requests +- PHP v8.1 +- MySQL versão 5.7 ou superior ou MariaDB versão 10.2 ou superior +- Suporte HTTPS +- Um [ntp-synced clock](https://wiki.debian.org/NTP) para validar as solicitações de federação -### PHP v8.1 only +### PHP v8.1 -PHP version 8.1 is required, with the following extensions installed: +A versão 8.1 do PHP é necessária, com as seguintes extensões instaladas: -- [intl](https://php.net/manual/en/intl.requirements.php) -- [libcurl](https://php.net/manual/en/curl.requirements.php) -- [mbstring](https://php.net/manual/en/mbstring.installation.php) -- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**, - **PNG** and **WEBP** libraries. -- [exif](https://www.php.net/manual/en/exif.installation.php) +- [intl](https://www.php.net/manual/fr/intl.requirements.php) +- [libcurl](https://www.php.net/manual/fr/curl.requirements.php) +- [mbstring](https://www.php.net/manual/fr/mbstring.installation.php) +- [gd](https://www.php.net/manual/en/image.installation.php) com bibliotecas **JPEG**, **PNG** e **WEBP**. +- [exif](https://www.php.net/manual/fr/exif.installation.php) -Additionally, make sure that the following extensions are enabled in your PHP: +Além disso, verifique se as seguintes extensões estão habilitadas no seu PHP: -- json (enabled by default - don't turn it off) -- xml (enabled by default - don't turn it off) -- [mysqlnd](https://php.net/manual/en/mysqlnd.install.php) +- json (habilitado por padrão - não desabilite) +- xml (habilitado por padrão - não desabilite) +- [mysqlnd](https://www.php.net/manual/fr/mysqlnd.install.php) -### MySQL compatible database +### Banco de dados compatível com o MySQL -> We recommend using [MariaDB](https://mariadb.org). +> Recomendamos o uso do [MariaDB](https://mariadb.org). -::: warning Warning +::: warning Atenção -Castopod only works with supported MySQL 5.7 or higher compatible databases. It -will break with the previous MySQL v5.6 for example as its end of life was on -February 5, 2021. +O Castopod só funciona com bancos de dados do MySQL versão 5.7 ou superior. As versões 5.6 (que tiveram suporte encerrado em 5 de fevereiro de 2021) ou anteriores do MySQL não funcionarão. ::: -You will need the server hostname, database name, username and password to -complete the installation process. If you do not have these, please contact your -server administrator. +Você precisará do nome do host do servidor, nome do banco de dados, nome de usuário e senha para concluir o processo de instalação. Se você não tiver essas informações, entre em contato com seu administrador. -#### Privileges +### (Opcional) FFmpeg v4.1.8 ou superior para clipes de vídeo -User must have at least these privileges on the database for Castopod to work: -`CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`, `UPDATE`, -`REFERENCES`, `CREATE VIEW`. +O [FFmpeg](https://www.ffmpeg.org/) versão 4.1.8 ou superior é necessário se você deseja gerar clipes de vídeo. As seguintes extensões devem estar instaladas: -### (Optional) FFmpeg v4.1.8 or higher for Video Clips +- biblioteca **FreeType 2** para [gd](https://www.php.net/manual/en/image.installation.php). -[FFmpeg](https://www.ffmpeg.org/) version 4.1.8 or higher is required if you -want to generate Video Clips. The following extensions must be installed: +### (Opcional) Outras recomendações -- **FreeType 2** library for - [gd](https://www.php.net/manual/en/image.installation.php). +- Redis para melhor desempenho em cache. +- CDN para cache de arquivos estáticos e melhor desempenho. +- Gateway de e-mail para senhas perdidas. -### (Optional) Other recommendations +## Instruções de instalação -- Redis for better cache performances. -- CDN for static files caching and better performances. -- e-mail gateway for lost passwords. +### Pré-requisitos -## Install instructions - -### Pre-requisites - -0. Get a Web Server with [requirements](#requirements) installed -1. Create a MySQL database for Castopod with a user having access and - modification privileges (for more info, see - [MySQL compatible database](#mysql-compatible-database)). -2. Activate HTTPS on your domain with an _SSL certificate_. -3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto - the web server if you haven’t already. - - ⚠️ Set the web server document root to the `public/` sub-folder within the - `castopod` folder. -4. Add **cron tasks** on your web server for various background processes - (replace the paths accordingly): +0. Obtenha um servidor web com [os pré-requisitos](#pré-requisitos) instalados. +1. Crie um banco de dados MySQL para o Castopod com um usuário com as permissões necessárias (para mais informações, consulte [Banco de dados compatível com o MySQL](#banco-de-dados-compatível-com-o-mysql)). +2. Ative o HTTPS em seu domínio com um _certificado SSL_. +3. Baixe e descompacte o pacote mais recente do [Castopod](https://castopod.org/) no servidor web, se ainda não o tiver feito. + - ⚠️ Certifique-se de apontar a raiz do documento do servidor da web para a subpasta `public/` da pasta `castopod`. +4. Adicione **tarefas cron** no seu servidor web para vários processos em segundo plano (substitua os caminhos conforme necessário): ```bash - * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1 + * * * * * /caminho/para/php /caminho/para/castopod/spark tasks:run >> /dev/null 2>&1 ``` - **Note** - If you do not add this cron task, the following Castopod features - will not work: + **Observação** - Se você não adicionar essa tarefa cron, os seguintes recursos do Castopod não funcionarão: - - Importing a podcast from an existing RSS feed - - Broadcasting social activities to your followers in the fediverse - - Broadcasting episodes to open hubs using - [WebSub](https://en.wikipedia.org/wiki/WebSub) - - Generating video clips - - [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips) + - Importar um podcast de um feed RSS existente + - Transmitir atividades sociais para seus seguidores no Fediverso + - Transmitir episódios para hubs abertos usando o [WebSub](https://en.wikipedia.org/wiki/WebSub) + - Gerar clipes de vídeo - [requer FFmpeg](#opcional-ffmpeg-v418-ou-superior-para-clipes-de-vídeo) -### (recommended) Install Wizard +### (Método recomendado) Assistente de instalação -1. Run the Castopod install script by going to the install wizard page - (`https://your_domain_name.com/cp-install`) in your favorite web browser. -2. Follow the instructions on your screen. -3. Start podcasting! +1. Execute o script de instalação do Castopod acessando a página do assistente de instalação (`https://seu_nome_de_domínio.com/cp-install`) em seu navegador da web favorito. +2. Siga as instruções exibidas. +3. Comece a podcastar! -::: info Note +:::info Nota -The install script writes a `.env` file in the package root. If you cannot go -through the install wizard, you can create and edit the `.env` file manually -based on the `.env.example` file. +O script de instalação criará um arquivo `.env` na raiz do pacote. Se você não conseguir usar o assistente de instalação, poderá criar e editar o arquivo `.env` manualmente, com base no arquivo `.env.example`. ::: -### Email/SMTP setup +### Configuração de e-mail/SMTP -Email configuration is required for some features to work properly (eg. -retrieving your forgotten password, sending instructions to premium subscribers, -…) +A configuração de e-mail é necessária para que alguns recursos funcionem corretamente (por exemplo, recuperar sua senha esquecida, enviar instruções para assinantes premium, ...) -You may add your email configuration in your instance's `.env` like so: +Você pode adicionar a configuração de e-mail no arquivo `.env` de sua instância da seguinte maneira: ```ini -# […] +# [...] -# […] - -email.fromEmail="your_email_address" -email.SMTPHost="your_smtp_host" -email.SMTPUser="your_smtp_user" -email.SMTPPass="your_smtp_password" +email.fromEmail="seu_endereço_de_email" +email.SMTPHost="seu_host_smtp" +email.SMTPUser="seu_usuario_smtp" +email.SMTPPass="sua_senha_smtp" ``` -#### Email config options +#### Opções de configuração de e-mail -| Variable name | Type | Default | -| ---------------- | -------------------- | ------------ | -| **`fromEmail`** | string | `undefined` | -| **`fromName`** | string | `"Castopod"` | -| **`SMTPHost`** | string | `undefined` | -| **`SMTPUser`** | string | `undefined` | -| **`SMTPPass`** | string | `undefined` | -| **`SMTPPort`** | number | `25` | -| **`SMTPCrypto`** | [`"tls"` or `"ssl"`] | `"tls"` | - -### Media storage - -By default, files are saved to the `public/media` folder using the file system. -If you need to relocate the `media` folder to a different location, you can -specify it in your `.env` file as shown below: - -```ini -# […] - -media.root="media" -media.storage="/mnt/storage" -``` - -In this example, the files will be saved to the /mnt/storage/media folder. Make -sure to also update your web server configuration to reflect this change. - -### S3 - -If you prefer storing your media files on an S3 compatible storage, you may -specify it in your `.env`: - -```ini -# […] - -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" -``` - -#### S3 config options - -| Variable name | Type | Default | -| ----------------------- | ------- | ----------- | -| **`endpoint`** | string | `undefined` | -| **`key`** | string | `undefined` | -| **`secret`** | string | `undefined` | -| **`region`** | string | `undefined` | -| **`bucket`** | string | `castopod` | -| **`protocol`** | number | `undefined` | -| **`pathStyleEndpoint`** | boolean | `false` | -| **`keyPrefix`** | string | `undefined` | - -## Community packages - -If you don't want to bother with installing Castopod manually, you may use one -of the packages created and maintained by the open-source community. - -### Install with YunoHost - -[YunoHost](https://yunohost.org/) is a distribution based on Debian GNU/Linux -made up of free and open-source software packages. It manages the hardships of -self-hosting for you. - -
- - - Install Castopod with YunoHost - - -Github -Repo - -
+| Nome da variável | Tipo | Valor padrão | +| ---------------- | -------------------- | -------------- | +| **`fromEmail`** | string | `undefined` | +| **`fromName`** | string | `"Castopod"` | +| **`SMTPHost`** | string | `undefined` | +| **`SMTPUser`** | string | `undefined` \ No newline at end of file diff --git a/docs/src/pt/getting-started/security.md b/docs/src/pt/getting-started/security.md index e205698d..ba1311fe 100644 --- a/docs/src/pt/getting-started/security.md +++ b/docs/src/pt/getting-started/security.md @@ -1,26 +1,22 @@ --- -title: Security +title: Segurança --- -# Security concerns +# Perguntas de segurança -Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP -framework that encourages -[good security practices](https://codeigniter.com/user_guide/concepts/security.html). +O Castopod é desenvolvido no [CodeIgniter4](https://codeigniter.com/), um framework PHP que incentiva as +[boas práticas de segurança](https://codeigniter.com/user_guide/concepts/security.html). -To maximize your instance's safety and prevent any malicious attack, we -recommend you update all your Castopod files permissions after installation or -updates (to avoid any prior permission error): +Para garantir a melhor segurança possível para sua instância e evitar ataques maliciosos, recomendamos que você atualize as permissões dos arquivos do Castopod após a instalação e cada atualização (e evite erros de acesso aos arquivos): -- `writable/` folder must be **readable** and **writable**. -- `public/media/` folder must be **readable** and **writable**. -- any other file must be set to **readonly**. +- A pasta `writable/` deve ter permissão de **leitura** e **escrita**. +- A pasta `public/media/` deve ter permissão de **leitura** e **escrita**. +- Todos os outros arquivos devem ter permissão de **leitura apenas**. -For instance, if you are using Apache or NGINX with Ubuntu you may do the -following: +Por exemplo, se você estiver usando o Apache ou o NGINX com o Ubuntu, você pode executar os seguintes comandos: ```bash -sudo chown -R root:root /path/to/castopod -sudo chown -R www-data:www-data /path/to/castopod/writable -sudo chown -R www-data:www-data /path/to/castopod/public/media -``` +sudo chown -R root:root /caminho/para/castopod +sudo chown -R www-data:www-data /caminho/para/castopod/writable +sudo chown -R www-data:www-data /caminho/para/castopod/public/media +``` \ No newline at end of file diff --git a/docs/src/pt/getting-started/update.md b/docs/src/pt/getting-started/update.md index 98e019fb..562f9f08 100644 --- a/docs/src/pt/getting-started/update.md +++ b/docs/src/pt/getting-started/update.md @@ -1,109 +1,97 @@ --- -title: Update +title: Atualização sidebarDepth: 3 --- -# How to update Castopod? +# Como instalar o Castopod? -After installing Castopod, you may want to update your instance to the latest -version in order to enjoy the latest features ✨, bug fixes 🐛 and performance -improvements ⚡. +Depois de instalar o Castopod, você pode atualizar sua instância para a versão mais recente e aproveitar os recursos mais recentes ✨, correções de bugs 🐛 e melhorias de desempenho ⚡. -## Update instructions +## Instruções de atualização -0. ⚠️ Before any update, we highly recommend you backup your Castopod files and - database. +0. ⚠️ Antes de atualizar, recomendamos fortemente que você faça backup de seus arquivos Castopod e do banco de dados. - cf. - [Should I make a backup before updating?](#should-i-make-a-backup-before-updating) + [Devo fazer backup antes de atualizar?](#devo-fazer-backup-antes-de-atualizar) -1. Go to the - [releases page](https://code.castopod.org/adaures/castopod/-/releases) and - see if your instance is up to date with the latest Castopod version +1. Vá para a + [página de versões](https://code.castopod.org/adaures/castopod/-/releases) e + veja se sua instância está atualizada com a versão mais recente do Castopod - cf. - [Where can I find my Castopod version?](#where-can-i-find-my-castopod-version) + [Onde posso encontrar a versão do meu Castopod?](#onde-posso-encontrar-a-versão-do-meu-castopod) -2. Download the latest release package named `Castopod Package`, you may choose - between the `zip` or `tar.gz` archives +2. Baixe o pacote de atualização mais recente chamado `Pacote Castopod`, você pode escolher entre os arquivos `zip` ou `tar.gz` - - ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code - - Note that you can also download the latest package from + - ⚠️ Certifique-se de baixar o Pacote Castopod e **NÃO** o Código Fonte + - Observe que você também pode baixar o pacote mais recente em [castopod.org](https://castopod.org/) -3. On your server: +3. Em seu servidor: - - Remove all files except `.env` and `public/media` - - Copy the new files from the downloaded package into your server + - Apague todos os arquivos, exceto `.env` e `public/media` + - Copie os novos arquivos do pacote baixado para o seu servidor - ::: info Note + ::: info Nota - You may need to reset files permissions as during the install process. - Check [Security Concerns](./security.md). + Você pode precisar redefinir as permissões de arquivo, como no processo de instalação. Consulte + [Preocupações de segurança](./security.md). ::: -4. Update your database schema from your `Castopod Admin` > `About` page or by - running: +4. Atualize o esquema do banco de dados a partir da página `Castopod Admin` > `Sobre` ou executando: ```bash php spark castopod:database-update ``` -5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > - `Housekeeping` -6. ✨ Enjoy your fresh instance, you're all done! +5. Limpe seu cache a partir da página `Castopod Admin` > `Configurações` > `geral` > + `Manutenção` +6. ✨ Aproveite sua nova instância, você terminou! -::: info Note +::: info Nota -Releases may come with additional update instructions (see -[releases page](https://code.castopod.org/adaures/castopod/-/releases)). +Versões podem ter instruções de atualização adicionais (consulte a +[página de notas de versão](https://code.castopod.org/adaures/castopod/-/releases)). - cf. - [I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do) + [Eu não atualizei minha instância por um longo tempo... O que devo fazer?](#eu-não-atualizei-minha-instância-por-um-longo-tempo-o-que-devo-fazer) ::: -## Fully Automated updates +## Atualizações totalmente automatizadas -> Coming soon... 👀 +> Em breve... 👀 -## Frequently asked questions (FAQ) +## Perguntas Frequentes (FAQ) -### Where can I find my Castopod version? +### Onde posso encontrar a versão do Castopod? -Go to your Castopod admin panel, the version is displayed on the bottom left -corner. +Vá para o painel de administração do Castopod, a versão será exibida no canto inferior esquerdo. -Alternatively, you can find the version in the `app > Config > Constants.php` -file. +Você também pode encontrar a versão no aplicativo +`> Configuração > Constantes.php` pasta. -### I haven't updated my instance in a long time… What should I do? +### Eu não atualizei minha instância por um longo tempo... O que devo fazer? -No problem! Just get the latest release as described above. Only, when going -through the release instructions (4), perform them sequentially, from the oldest -to the newest. +Sem problemas! Basta obter a versão mais recente como descrito acima. Quando você executar as instruções de atualização (4), execute-as sequencialmente, da mais antiga para a mais recente. -> You may want to backup your instance depending on how long you haven't updated -> Castopod. +> Você deve fazer backup de sua instância de acordo com a data da sua última atualização do Castopod. -For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to -`v1.0.0-beta.1`: +Por exemplo, se você está na versão `v1.0.0-alpha.42` e deseja atualizar para +a versão `v1.0.0-beta.1` : -0. (highly recommended) Make a backup of your files and database. +0. (altamente recomendado) Faça backup de seus arquivos e banco de dados. -1. Download the latest release, overwrite your files whilst keeping `.env` and - `public/media`. +1. Baixe a versão mais recente, substitua seus arquivos mantendo + `.env` e `public/media`. -2. Go through each release update instructions sequentially (from oldest to - newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`, - `v1.0.0-alpha.45`, …, `v1.0.0-beta.1`. +2. Execute as instruções de atualização uma a uma (das mais antigas para as mais recentes). -3. ✨ Enjoy your fresh instance, you're all done! +3. ✨ Sua nova instância está pronta! -### Should I make a backup before updating? +### Devo fazer backup antes de atualizar? -We advise you do, so you don't lose everything if anything goes wrong! +Recomendamos que você faça isso para não perder nada se algo der errado! -More generally, we advise you make regular backups of your Castopod files and -database to prevent you from losing it all… +Em geral, recomendamos fazer backups regulares de seus arquivos Castopod e banco de dados para evitar qualquer perda... \ No newline at end of file diff --git a/docs/src/pt/index.md b/docs/src/pt/index.md index 42ec8ed0..320ed40f 100644 --- a/docs/src/pt/index.md +++ b/docs/src/pt/index.md @@ -2,298 +2,162 @@ sidebarDepth: 2 --- -# Welcome 👋 +# Bem-vindo 👋 [![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![stars-badge]][stars] -Castopod is a free & open-source hosting platform made for podcasters who want -engage and interact with their audience. +O Castopod é uma plataforma gratuita e de código aberto desenvolvida para +podcasters que desejam se conectar e interagir com seu público. -Castopod is easy to install and was built on top of -[CodeIgniter4](https://codeigniter.com/), a powerful PHP framework with a very -small footprint. +O Castopod é fácil de instalar e foi desenvolvido com +[CodeIgniter4](https://codeigniter.com/), um poderoso framework PHP muito +compacto. -## Features +## Características -- 🌱  Free & open-source (AGPL v3 License) -- 🔐  Focused on data sovereignty: your content, audience, and analytics - belong to you, and you only -- 🪄  Podcasting 2.0 features: GUID, locked, transcripts, funding, - chapters, location, persons, soundbites, … -- 💬  Built-in social network: - - 🚀  Castopod is part of the Fediverse, a decentralized social network - - ❤️  Create posts, share, favourite, and comment on episodes -- 📈  Built-in analytics: - - ⚖️  GDPR / CCPA / LGPD compliant - - 🪙  Standard IABv2 audience measurement - - 🏡  On-premises analytics, no third party involved -- 📢  Built-in marketing tools: - - ✅  SEO ready (open-graph meta-tags, JSON-LD, …) - - 📱  PWA: install as a standalone app - - 🎨  Customizable theme colors - - 🎬  Generate ready-to-share Video clips from episodes - - 🔉  Generate soundbites - - ▶️  Embeddable player, embed your episodes on any website -- 💸  Monetization: - - 🔗  Funding links - - 📲  listen-to-click ads +- 🌱  Livres, gratuitos e de código aberto (Licença AGPL v3) +- 🔐  Focado na soberania de dados: seu conteúdo, seu público e suas estatísticas pertencem apenas a você +- 🪄 Recursos do Podcasting 2.0: GUID, travamento, + transcrições, financiamento, capítulos, geolocalização, participantes, + trechos de áudio, ... +- 💬  Rede social integrada: + - 🚀  O Castopod faz parte do Fediverso, uma rede social descentralizada + - ❤️  Crie publicações, compartilhe, favorite e comente episódios +- 📈  Estatísticas integradas: + - ⚖️  Compatível com GDPR / CCPA / LGPD + - 🪙 Medição de audiência IABv2 + - 🏡  Estatísticas integradas, sem intermediários de terceiros +- 📢  Ferramentas de marketing integradas: + - ✅  Preparado para SEO (meta-tags open-graph, JSON-LD...) + - 📱  PWA: instale como um aplicativo independente + - 🎨  Personalize as cores do tema + - 🎬  Crie clipes de vídeo para compartilhar a partir de episódios + - 🔉  Crie trechos de áudio + - ▶️  Incorpore seus episódios em qualquer site +- 💸  Monetização: + - 🔗  Links para financiamento + - 📲  Publicidade "listen-to-click" - 🤝  value4value / WebMonetization - - 💎  Premium podcasts -- 📡  Publish your episodes everywhere with RSS: - - 📱  On all indexes and apps: Podcast Index, Apple Podcasts, Spotify, - Google Podcasts, Deezer, Podcast Addict, Podfriend, … - - ⚡  Broadcast your episodes instantly with WebSub -- 📥  Podcast import: move your existing podcast into Castopod -- 📤  Move your podcast out of Castopod -- 🔀  Multi-tenant: host as many podcasts as you want -- 👥  Multi-user: add contributors and set roles -- 🌎  i18n support: translated in English, French, Polish, German, - Brazilian Portuguese & Spanish… with - [more to come](https://translate.castopod.org)! + - 💎  Podcasts premium +- 📡 Publique seus episódios em qualquer lugar com RSS: + - 📱  Em todos os diretórios e aplicativos: Podcast Index, + Podcasts Apple, Spotify, Google Podcasts, Deezer, Podcast Addict, Podfriend... + - ⚡ Transmita seus episódios instantaneamente com o WebSub +- 📥  Importe seu Podcast: migre seu podcast existente para o Castopod +- 📤  Mova seu podcast para outro provedor de hospedagem +- 🔀  Multi-inquilino: hospede quantos podcasts você quiser +- 👥  Multiusuário: adicione colaboradores e defina suas funções +- 🌎  suporte de i18n: traduzido para inglês, francês, polonês, alemão, + português, brasileiro e espanhol... e + [mais no futuro](https://translate.castopod.org)! -## Motivation +## Por que usar o Castopod? -The podcasting ecosystem is decentralized by nature: you can create your podcast -as an RSS file, publish it on the web and have it shared everywhere online. +O ecossistema de podcast é descentralizado por natureza: você pode criar seu podcast +como um arquivo RSS, publicá-lo na web e compartilhá-lo em qualquer lugar online. -It is in fact one of the only media to have stayed this way for a long time. +De fato, é um dos poucos meios de comunicação que permaneceu assim por muito tempo. -As usages are evolving, more and more people are getting into podcasts: whether -it is creators finding new ways to share their ideas, or listeners in the search -for better content. +À medida que os hábitos evoluem, cada vez mais pessoas estão se interessando por podcasts: sejam +criadores buscando novas maneiras de compartilhar suas ideias, ou ouvintes em busca +de um conteúdo melhor. -With podcasting becoming more widely used, some companies are trying to shift it -towards a more controlled and centralized medium. +Com o uso crescente de podcasts, algumas empresas estão tentando centralizar e controlar +essa mídia. -Castopod was created in an effort to provide an open and sustainable alternative -to hosting your podcasts, promoting decentralization to ensure that podcasters -creativity can express itself. +O Castopod foi criado com o objetivo de fornecer uma alternativa aberta e sustentável +para hospedar seus podcasts, promovendo a descentralização para garantir que a criatividade dos podcasters possa se expressar. -This project is pushed by the open-source community, and specifically by the -[Fediverse](https://fediverse.party/en/fediverse/) and -[Podcasting 2.0](https://podcastindex.org/) movements. +Este projeto é impulsionado pela comunidade de código aberto, e especificamente pelos movimentos +[Fediverse](https://fediverse.party/en/fediverse/) e +[Podcasting 2.0](https://podcastindex.org/). -## Comparison with other solutions +## Comparação com outras soluções -We believe that a solution is not necessarily right for everyone, it highly -depends on your needs. So, here are comparisons with other tools to help you to -gauge whether Castopod is the right fit for you. +Acreditamos que uma solução não é necessariamente a melhor para todos, depende muito das suas necessidades. Portanto, aqui estão algumas comparações com outras ferramentas para ajudar você a avaliar se o Castopod é a escolha certa para você. ### Castopod vs Wordpress -Castopod is often referred to as "the Wordpress for podcasts" because of the -similarities between the two. In some ways this is true. And actually, Castopod -was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption -from the community and the number of websites running it. +O Castopod é frequentemente chamado de "o Wordpress para podcasts" por causa das semelhanças entre os dois. De certa forma, isso é verdade. De fato, o Castopod foi muito inspirado pelo ecossistema do Wordpress, vendo a facilidade de adoção pela comunidade e o número de sites que o estão executando. -Just like Wordpress, Castopod is free & open source, built using PHP with a -MySQL database and is packaged in a way that you can easily install on most web -servers. +Assim como o Wordpress, o Castopod é gratuito e de código aberto, desenvolvido em PHP com um banco de dados MySQL e é empacotado de uma maneira que você pode facilmente instalá-lo na maioria dos servidores web. -Wordpress is a great way to create your website and extend it with plugins to -get what you want. It is a full fledged CMS that helps you get any type of -website online. +O Wordpress é uma ótima maneira de criar seu site e estendê-lo com plugins para obter o que você deseja. É um CMS completo que ajuda você a colocar qualquer tipo de site online. -On the other hand, Castopod is meant to address the podcasters needs -specifically, focusing on podcasting, and nothing else. You don't need any -plugin to get you started on your podcasting journey. +Por outro lado, o Castopod visa atender às necessidades dos podcasters especificamente, focando no podcasting e nada mais. Você não precisa de nenhum plugin para começar sua jornada de podcast. -This allows optimizing the processes specific to podcasting: ranging from the -creation of your podcasts and the publication of new episodes all the way to -broadcasting, marketing and analytics. +Isso permite otimizar os processos específicos do podcasting: desde a criação dos seus podcasts e a publicação de novos episódios até a transmissão, marketing e análise. -Finally, depending on your needs, Wordpress and Castopod can even live side by -side as they share the same requirements! +Finalmente, dependendo das suas necessidades, o Wordpress e o Castopod podem até conviver lado a lado, pois compartilham os mesmos requisitos! ### Castopod vs Funkwhale -Funkwhale is a self-hosted, modern free and open-source music server. Just as -Castopod, Funkwhale is on the fediverse, a decentralized social network allowing -interoperability between the two. +O Funkwhale é um servidor de música auto-hospedado, moderno, gratuito e de código aberto. Assim como o Castopod, o Funkwhale está no fediverso, uma rede social descentralizada que permite a interoperabilidade entre os dois. -Funkwhale was initially built around music. And later on, as the project -evolved, the ability to host podcasts was introduced. +O Funkwhale foi inicialmente construído em torno da música. Mais tarde, à medida que o projeto evoluía, a capacidade de hospedar podcasts foi introduzida. -Unlike Funkwhale, Castopod has been designed and built around podcasting -exclusively. This allows easier implementation for features related to the -podcasting ecosystem, such as the podcasting 2.0 features (transcripts, -chapters, locations, persons, …). +Ao contrário do Funkwhale, o Castopod foi projetado e construído exclusivamente em torno do podcasting. Isso permite uma implementação mais fácil de recursos relacionados ao ecossistema de podcasting, como os recursos de podcasting 2.0 (transcrições, capítulos, locais, pessoas, ...). -So, you should probably use Funkwhale if you want to host your music, and use -Castopod if you want to host your podcasts. +Portanto, use o Funkwhale se você deseja hospedar sua música e use o Castopod se você deseja hospedar seus podcasts. -### Castopod vs other podcast hosts +### Castopod vs outros hosts de podcasts -There are many solutions for you to host your podcasts, some of which are really -great and [a lot of them](https://podcastindex.org/apps) are jumping into the -Podcasting 2.0 wagon just like Castopod! +Existem muitas soluções disponíveis para hospedar seus podcasts, algumas das quais são realmente ótimas e [muitas](https://podcastindex.org/apps) estão aderindo ao movimento Podcasting 2.0, assim como o Castopod! -Each of these solutions differ from one another, you may compare with the -[list of features](#features). +Cada uma dessas soluções é diferente das outras, você pode compará-las com a [lista de recursos](#características). -That being said, there are two main differences with other podcasting solutions: +Dito isso, há duas diferenças principais em relação a outras soluções de podcasting: -- Castopod can be self-hosted and is the only solution that allows you to keep - full control over what you produce. Also, as it is open-source, you can even - customize it as you wish. +- O Castopod pode ser auto-hospedado e é a única solução que permite que você tenha controle total sobre o que você produz. Além disso, como é de código aberto, você tem o poder de modificá-lo como quiser. -- Castopod is the only solution that currently integrates both a decentralized - social network with ActivityPub as well as many of the podcasting 2.0 - features, hoping to bridge the gap between the two. +- O Castopod é a única solução que atualmente integra tanto uma rede social descentralizada com ActivityPub quanto recursos de "Podcasting 2.0", reduzindo a lacuna entre os dois. -## Contributing +## Contribuindo -Love Castopod and would like to help? Take a look at the following documentation -to get you started. +Gostou do Castopod e gostaria de ajudar? Consulte a documentação a seguir para começar a contribuir. -### Code of conduct +### Código de conduta -Castopod has adopted a Code of Conduct that we expect project participants to -adhere to. Please read the -[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md) -so that you can understand what actions will and will not be tolerated. +O Castopod adotou um Código de Conduta ao qual esperamos que os participantes do projeto adiram. Leia o [manual do CÓDIGO DE CONDUTA](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md) para entender quais ações serão ou não toleradas. -### Contributing guide +### Guia de contribuição -Read our [contributing guide](./contributing/guidelines.md) to learn about our -development process, how to propose bugfixes and improvements, and how to build -and test your changes to Castopod. +Leia o nosso [guia de contribuição (em inglês)](./contributing/guidelines.md) para saber mais sobre nosso processo de desenvolvimento, como propor correções de bugs e melhorias, e como compilar e testar suas alterações no Castopod. -## Contributors ✨ +## Contribuidores ✨ -Thanks goes to these wonderful people -([emoji key](https://allcontributors.org/docs/en/emoji-key)): +Agradecimentos a essas pessoas maravilhosas ([legenda de emojis](https://allcontributors.org/docs/en/emoji-key)): - + - + - - - - + + + - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Yassine Doghri
Yassine Doghri

💻 🐛 📖 👀 🚧 🖋 🎨 ️️️️♿️ 🌍 💬 🧑‍🏫 🚇 🤔 📆 📝
Yassine Doghri
Yassine Doghri

💻 🐛 📖 👀 🚧 🖋 🎨 ️️️️️♿️ 🌍 💬 🧑‍🏫 🚇 🤔 📆 📝
Benjamin Bellamy
Benjamin Bellamy

💻 🐛 👀 🖋 🌍 💬 🚇 🤔 📝 📆 📢
Ola Hneini
Ola Hneini

💻 👀 📖 🚧 💬 🤔
Romain de Laage
Romain de Laage

💻 🚇 📖 🌍 🤔
Lyonel Bernard
Lyonel Bernard

🐛 💬 🔊 🤔
Christopher Lagonick-Weitzel
Christopher Lagonick-Weitzel

🐛 💬 🔊 🤔
Ernesto Acosta
Ernesto Acosta

🐛 🔊 🌍 💬 🤔
Erich Stark
Erich Stark

💻 🐛 💬 🚇 🤔
ridog
ridog

🐛 🤔
Gerardo Gutierrez
Gerardo Gutierrez

🐛 🤔
Bastien Luneteau
Bastien Luneteau

💻 🐛
Cécile Ricordeau
Cécile Ricordeau

🎨
Patryk Miś
Patryk Miś

🌍
Marcin Lewandowski
Marcin Lewandowski

🐛 🤔
Sebastian Janik
Sebastian Janik

💻
Patryk Karczmarczyk
Patryk Karczmarczyk

💻
denis d
denis d

🐛 🤔
acheaito
acheaito

🐛 🖋 🎨 🤔
Arun Ahuja
Arun Ahuja

🐛 🖋 🤔
Burak Digdem
Burak Digdem

🐛 💬 🤔
PodLibre mastodon account
PodLibre mastodon account

💻
Aram Adhikari
Aram Adhikari

🐛 💬 🤔 🚇
Allan Tipsword
Allan Tipsword

🐛 🚇 🤔
Douglas Kastle
Douglas Kastle

🐛 🤔
cExplorer
cExplorer

🐛 🌍
ImaCrea
ImaCrea

🐛 🤔
Jonas S
Jonas S

💻
LEFEBVRE Yann
LEFEBVRE Yann

🐛
Sebastian Späth
Sebastian Späth

🐛 🤔
rocky III
rocky III

🐛
Hermann Josef Eckl
Hermann Josef Eckl

🐛
Delhaye Cyrille
Delhaye Cyrille

🐛 🤔
João Leandro
João Leandro

🌍 🤔
Angelos Chouvardas
Angelos Chouvardas

🌍
Eivind
Eivind

🌍
Ewen
Ewen

🌍 🤔
forght
forght

🌍
glottis0q
glottis0q

🌍
ButterflyOfFire
ButterflyOfFire

🌍
Lucian I. Last
Lucian I. Last

🌍
LuuzViir
LuuzViir

🌍
CTHTC
CTHTC

🌍
Russian Retro
Russian Retro

🌍
Marek L'ach
Marek L'ach

🌍
GunChleoc
GunChleoc

🌍
GabiSnow
GabiSnow

🌍
bendaha
bendaha

🌍
Samuel Roland
Samuel Roland

🌍
Dimitri Regnier
Dimitri Regnier

🤔
irithys
irithys

🌍
Sergi
Sergi

🌍
ghose (XoseM)
ghose (XoseM)

🌍
Andreas Olsson
Andreas Olsson

🌍
leonfrom
leonfrom

🌍
agentcobra
agentcobra

🌍
Alessandro
Alessandro

🌍
liimee
liimee

🌍
Ahmed Sabouni
Ahmed Sabouni

🌍
KrzysztofDomanczyk
KrzysztofDomanczyk

💻
- - - - - - -This project follows the -[all-contributors](https://github.com/all-contributors/all-contributors) -specification. Contributions of any kind welcome! - -## Contact - -You may reach us for help or ask any question you have on: - -- [Discord](https://castopod.org/discord) (for direct interaction with - developers and the community) -- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for - feature requests & bug reports) - -Alternatively, you can follow us on social media platforms to get news about -Castopod: - -- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance) -- [Twitter](https://twitter.com/castopod) -- [LinkedIn](https://linkedin.com/company/castopod) -- [Facebook](https://www.facebook.com/castopod) - -## Sponsors - -The ongoing development of Castopod is made possible with the support of its -backers. If you'd like to help, please consider -[sponsoring Castopod's development](https://opencollective.com/castopod/contribute). - -
- Ad Aures Logo - NLnet Logo -
- -## License - -[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/) - -Copyright © 2020-present, [Ad Aures](https://adaures.com/). -https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release -https://img.shields.io/github/license/ad-aures/castopod?color=blue -https://img.shields.io/badge/contributions-welcome-brightgreen.svg -https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg -https://img.shields.io/github/stars/ad-aures/castopod?style=social - -[release]: https://code.castopod.org/adaures/castopod/-/releases -[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md -[contributions]: https://code.castopod.org/adaures/castopod/-/issues -[semantic-release]: https://github.com/semantic-release/semantic-release -[discord]: https://castopod.org/discord -[stars]: https://github.com/ad-aures/castopod/stargazers -[crowdin]: https://translate.castopod.org/project/castopod + Charles Gueunet
Charles Gueunet

💻 🐛 🖋 🤔 + Renata Ávila
Renata Ávila

🐛 🤔 + poortegoed
poortegoed

🐛 + Tim Struthoff
Tim Struthoff

🐛 + Markus Bauhardt
Markus Bauhardt

🐛 + Michael Beck
Michael Beck

🐛 + [Issue templates](https://docs.gitlab.com/ee/user/project/description_templates.html#using-the-templates) -> have been created for this project. You may use them to help you follow those -> guidelines. +> [Mallar för felrapporter](https://docs.gitlab.com/ee/user/project/description_templates.html#using-the-templates) har skapats för detta projekt. Du kan använda dem för att hjälpa dig att följa dessa riktlinjer. -## Feature requests +## Funktionsbegäran -Feature requests are welcome. But take a moment to find out whether your idea -fits with the scope and aims of the project. It's up to _you_ to make a strong -case to convince the project's developers of the merits of this feature. Please -provide as much detail and context as possible. +Funktionsbegäran välkomnas. Men ta en stund och ta reda på om din idé passar in i projektets omfattning och mål. Det är upp till _dig_ att argumentera starkt för att övertyga projektets utvecklare om fördelarna med denna funktion. Var vänlig och ange så mycket detaljer och sammanhang som möjligt. -## Pull requests +## Pull-begäran -Good pull requests - patches, improvements, new features - are a fantastic help. -They should remain focused in scope and avoid containing unrelated commits. +Bra pull-begäran - patchar, förbättringar, nya funktioner - är en fantastisk hjälp. De bör förbli fokuserade och undvika att innehålla orelaterade ändringar. -**Please ask first** before embarking on any significant pull request (e.g. -implementing features, refactoring code, porting to a different language), -otherwise you risk spending a lot of time working on something that the -project's developers might not want to merge into the project. +**Be gärna först** innan du börjar arbeta på en betydande pull-begäran (t.ex. implementera funktioner, refaktorera kod, portera till ett annat språk), annars riskerar du att spendera mycket tid på något som projektets utvecklare kanske inte vill slå samman i projektet. -Please adhere to the coding conventions used throughout a project (indentation, -accurate comments, etc.) and any other requirements (such as test coverage). +Var snäll och följ kodningskonventionerna som används i hela projektet (indentering, noggranna kommentarer, etc.) och eventuella andra krav (som testtäckning). -Adhering to the following process is the best way to get your work included in -the project: +Att följa följande process är det bästa sättet att få ditt arbete inkluderat i projektet: -1. [Fork](https://docs.gitlab.com/ee/gitlab-basics/fork-project.html) the - project, clone your fork, and configure the remotes: +1. [Gaffla](https://docs.gitlab.com/ee/gitlab-basics/fork-project.html) projektet, klona din gaffel och konfigurera fjärranslutningarna: ```bash -# Clone your fork of the repo into the current directory -git clone https://code.castopod.org//castopod.git +# Klon din gaffel av källkoden till aktuell katalog +git clone https://code.castopod.org//castopod.git -# Navigate to the newly cloned directory +# Navigera till den nyligen klonade mappen cd castopod -# Assign the original repo to a remote called "upstream" -git remote add upstream https://code.castopod.org/adaures/castopod.git -``` - -2. If you cloned a while ago, get the latest changes from upstream: - -```bash -git checkout main -git pull upstream main -``` - -3. Create a new topic branch (off the `main` branch) to contain your feature, - change, or fix: - -```bash -git checkout -b -``` - -4. Commit your changes in logical chunks. Please adhere to these - [git commit message guidelines](https://conventionalcommits.org/) or your - code is unlikely be merged into the main project. Use Git's - [interactive rebase](https://help.github.com/articles/about-git-rebase/) - feature to tidy up your commits before making them public. - -5. Locally merge (or rebase) the upstream dev branch into your topic branch: - -```bash -git pull [--rebase] upstream main -``` - -6. Push your topic branch up to your fork: - -```bash -git push origin -``` - -7. [Open a Pull Request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html#new-merge-request-from-a-fork) - with a clear title and description. - -**IMPORTANT**: By submitting a patch, you agree to allow the project owners to -license your work under the terms of the -[GNU AGPLv3](https://code.castopod.org/adaures/castopod/-/blob/main/LICENSE). - -## Collaborating guidelines - -There are few basic rules to ensure high quality of the project: - -- Before merging, a PR requires at least two approvals from the collaborators - unless it's an architectural change, a large feature, etc. If it is, then at - least 50% of the core team have to agree to merge it, with every team member - having a full veto right. (i.e. every single one can block any PR) -- A PR should remain open for at least two days before merging (does not apply - for trivial contributions like fixing a typo). This way everyone has enough - time to look into it. - -You are always welcome to discuss and propose improvements to this guideline. +# Ange den ursprungliga källkoden som en fjärranslutning med namnet "upstream" +git remote add upstre \ No newline at end of file diff --git a/docs/src/sv/contributing/setup-development.md b/docs/src/sv/contributing/setup-development.md index b8f87717..ccffa720 100644 --- a/docs/src/sv/contributing/setup-development.md +++ b/docs/src/sv/contributing/setup-development.md @@ -1,45 +1,36 @@ ---- -title: Development setup -sidebarDepth: 3 ---- +# Konfigurera din utvecklingsmiljö -# Setup your development environment +## Introduktion -## Introduction +Castopod är en webbapplikation baserad på php-ramverket [CodeIgniter 4](https://codeigniter.com). -Castopod is a web app based on the `php` framework -[CodeIgniter 4](https://codeigniter.com). +Vi använder [Docker](https://www.docker.com/) för att snabbt konfigurera en utvecklingsmiljö. En `docker-compose.yml`- och `Dockerfile`-fil finns i projektets rotmapp för att hjälpa dig komma igång med ditt bidrag. -We use [Docker](https://www.docker.com/) quickly setup a dev environment. A -`docker-compose.yml` and `Dockerfile` are included in the project's root folder -to help you kickstart your contribution. +> Du behöver ingen tidigare kunskap om Docker för att följa nästa steg. +> Om du dock vill använda din egen miljö kan du göra det fritt! -> You don't need any prior knowledge of Docker to follow the next steps. -> However, if you wish to use your own environment, feel free to do so! +## Installationsinstruktioner -## Setup instructions +### 1. Förutsättningar -### 1. Pre-requisites +0. Installera [docker](https://docs.docker.com/get-docker). -0. Install [docker](https://docs.docker.com/get-docker). - -1. Clone Castopod project by running: +1. Klona Castopods projekt genom att köra: ```bash git clone https://code.castopod.org/adaures/castopod.git ``` -2. Create a `.env` file with the minimum required config to connect the app to - the database and use redis as a cache handler: +2. Skapa en `.env`-fil med den minsta konfigurationen som krävs för att ansluta appen till databasen och använda Redis som cacheminne: ```ini CI_ENVIRONMENT="development" - # If set to development, you must run `pnpm run dev` to start the static assets server + # Om det är inställt som development, måste du köra `npm run dev` för att starta servern för statiska resurser vite.environment="development" - # By default, this is set to true in the app config. - # For development, this must be set to false as it is - # on a local environment + # Som standard är den här inställd på true i appens konfiguration. + # För development måste den vara inställd på false eftersom den är + # i en lokal miljö app.forceGlobalSecureRequests=false app.baseURL="http://localhost:8080/" @@ -56,369 +47,95 @@ to help you kickstart your contribution. cache.handler="redis" cache.redis.host = "redis" - # You may not want to use redis as your cache handler - # Comment/remove the two lines above and uncomment - # the next line for file caching. + # Du kanske inte vill använda Redis som cacheminne + # Kommentera/bort den ovanstående raden och ta bort kommentar + # från nästa rad för att använda filcachning. #cache.handler="file" ``` - > _NB._ You can tweak your environment by setting more environment variables - > in your custom `.env` file. See the `env` for examples or the - > [CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html) - > for more info. + > _NB._ Du kan anpassa din miljö genom att ange fler miljövariabler + > i din anpassade `.env`-fil. Se `env` för exempel eller + > [CodeIgniter4 användarguide](https://codeigniter.com/user_guide/index.html) + > för mer information. -3. (for docker desktop) Add the repository you've cloned to docker desktop's - `Settings` > `Resources` > `File Sharing` +3. (för Docker Desktop) Lägg till det klonade projektet i Docker Desktop under + `Inställningar` > `Resurser` > `Delade filer` -### 2. (recommended) Develop inside the app Container with VSCode +### 2. (rekommenderas) Utveckla inuti appens container med VSCode -If you're working in VSCode, you can take advantage of the `.devcontainer/` -folder. It defines a development environment (dev container) with preinstalled -requirements and VSCode extensions so you don't have to worry about them. All -required services will be loaded automagically! 🪄 +Om du arbetar i VSCode kan du dra nytta av mappen `.devcontainer/`. Den definierar en utvecklingsmiljö (dev container) med förinstallerade krav och VSCode-tillägg så att du inte behöver oroa dig för dem. Alla nödvändiga tjänster laddas automatiskt! 🪄 -1. Install the VSCode extension - [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) -2. `Ctrl/Cmd + Shift + P` > `Open in container` +1. Installera VSCode-tillägget [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) +2. `Ctrl/Cmd + Skift + P` > `Öppna i container` - > The VSCode window will reload inside the dev container. Expect several - > minutes during first load as it is building all necessary services. + > VSCode-fönstret kommer att ladda om inuti dev-containern. Förvänta dig flera minuter vid första inladdning då alla nödvändiga tjänster byggs. - **Note**: The dev container will start by running Castopod's php server. - During development, you will have to start [Vite](https://vitejs.dev)'s dev - server for compiling the typescript code and styles: + **Obs**: Dev-behållaren kommer att starta genom att köra Castopods php-server. Under utvecklingen måste du starta [Vites](https://vitejs.dev) utvecklingsserver för att kompilera typescript-koden och stilarna: ```bash - # run Vite dev server - pnpm run dev + # starta Vites utvecklingsserver + npm run dev ``` - If there is any issue with the php server not running, you can restart them - using the following commands: + Om det uppstår några problem med att php-servern inte körs kan du starta om dem med följande kommandon: ```bash - # run Castopod server + # starta Castopods server php spark serve - 0.0.0.0 ``` -3. You're all set! 🎉 +3. Du är klar! 🎉 - You're now **inside the dev container**, you may use the VSCode console - (`Terminal` > `New Terminal`) to run any command: + Du är nu **inne i dev-behållaren**, du kan använda VSCode-konsolen (`Terminal` > `Ny terminal`) för att köra valfritt kommando: ```bash - # PHP is installed + # PHP är installerat php -v - # Composer is installed + # Composer är installerat composer -V - # pnpm is installed - pnpm -v + # npm är installerat + npm -v - # git is installed - git version + # git är installerat + git --version ``` -For more info, see -[VSCode Remote Containers](https://code.visualstudio.com/docs/remote/containers) +För mer information, se [VSCode Remote Containers](https://code.visualstudio.com/docs/remote/containers) -### 3. Start hacking +### 3. Börja koda -You're all set! Start working your magic by updating the project's files! Help -yourself to the -[CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html) for -more insights. +Du är klar! Börja arbeta med att uppdatera projektets filer! Använd gärna [CodeIgniter4 användarguide](https://codeigniter.com/user_guide/index.html) för mer information. -To see your changes, go to: +För att se dina ändringar, gå till: -- `http://localhost:8080/` for the Castopod app -- `http://localhost:8888/` for the phpmyadmin interface: +- `http://localhost:8080/` för Castopod-appen +- `http://localhost:8888/` för phpMyAdmin-gränssnittet: - - username: **castopod** - - password: **castopod** + - användarnamn: **castopod** + - lösenord: **castopod** -### 2-alt. Develop outside the app container +### 2-alt. Utveckling utanför appbehrållaren -You do not wish to use the VSCode devcontainer? No problem! +Vill du inte använda VSCode-devbehrållaren? Inga problem! -1. Start docker containers manually: +1. Starta behållarna manuellt: - Go to project's root folder and run: + Gå till projektets rotmapp och kör: ```bash - # starts all services declared in docker-compose.yml file - # -d option starts the containers in the background + # startar alla tjänster som anges i docker-compose.yml-filen + # -d-alternativet startar behållarna i bakgrunden docker-compose up -d - # See all running processes (you should see 3 processes running) + # Visa alla körande processer (du bör se 3 körande processer) docker-compose ps - # Alternatively, you can check all docker processes + # Alternativt kan du visa alla Docker-processer docker ps -a ``` - > The `docker-compose up -d` command will boot 4 containers in the - > background: - > - > - `castopod_app`: a php based container with Castopod requirements - > installed - > - `castopod_redis`: a [redis](https://redis.io/) database to handle queries - > and pages caching - > - `castopod_mariadb`: a [mariadb](https://mariadb.org/) server for - > persistent data - > - `castopod_phpmyadmin`: a phpmyadmin server to visualize the mariadb - > database. - -2. Run any command inside the containers by prefixing them with - `docker-compose run --rm app`: - - ```bash - # use PHP - docker-compose run --rm app php -v - - # use Composer - docker-compose run --rm app composer -V - - # use pnpm - docker-compose run --rm app pnpm -v - - # use git - docker-compose run --rm app git version - ``` - ---- - -## Going Further - -### Install Castopod's dependencies - -1. Install php dependencies with [Composer](https://getcomposer.org/) - - ```bash - composer install - ``` - - ::: info Note - - The php dependencies aren't included in the repository. Composer will check - the `composer.json` and `composer.lock` files to download the packages with - the right versions. The dependencies will live under the `vendor/` folder. - For more info, check out the - [Composer documentation](https://getcomposer.org/doc/). - - ::: - -2. Install javascript dependencies with [pnpm](https://pnpm.io/) - - ```bash - pnpm install - ``` - - ::: info Note - - The javascript dependencies aren't included in the repository. pnPM will - check the `package.json` and `pnpm-lock.yaml` files to download the packages - with the right versions. The dependencies will live under the `node_module` - folder. For more info, check out the - [pnPM documentation](https://pnpm.io/motivation). - - ::: - -3. Generate static assets: - - ```bash - # build all static assets at once - pnpm run build:static - - # build specific assets - pnpm run build:icons - pnpm run build:svg - ``` - - ::: info Note - - The static assets generated live under the `public/assets` folder, it - includes javascript, styles, images, fonts, icons and svg files. - - ::: - -### Initialize and populate database - -::: tip Tip - -You may skip this section if you go through the install wizard (go to -`/cp-install`). - -::: - -1. Build the database with the migrate command: - - ```bash - # loads the database schema during first migration - php spark migrate -all - ``` - - You may need to undo the migration (rollback): - - ```bash - # rolls back database schema (deletes all tables and their content) - php spark migrate:rollback - ``` - -2. Populate the database with the required data: - - ```bash - # Populates all required data - php spark db:seed AppSeeder - ``` - - You may choose to add data separately: - - ```bash - # Populates all categories - php spark db:seed CategorySeeder - - # Populates all Languages - php spark db:seed LanguageSeeder - - # Populates all podcasts platforms - php spark db:seed PlatformSeeder - - # Populates all Authentication data (roles definition…) - php spark db:seed AuthSeeder - ``` - -3. (optionnal) Populate the database with test data: - - - Populate test data (login: admin / password: AGUehL3P) - - ```bash - php spark db:seed TestSeeder - ``` - - - Populate with fake podcast analytics: - - ```bash - php spark db:seed FakePodcastsAnalyticsSeeder - ``` - - - Populate with fake website analytics: - - ```bash - php spark db:seed FakeWebsiteAnalyticsSeeder - ``` - - TestSeeder will add an active superadmin user with the following credentials: - - - username: **admin** - - password: **AGUehL3P** - -### Useful docker / docker-compose commands - -- Monitor the app container: - -```bash -docker-compose logs --tail 50 --follow --timestamps app -``` - -- Interact with redis server using included redis-cli command: - -```bash -docker exec -it castopod_redis redis-cli -``` - -- Monitor the redis container: - -```bash -docker-compose logs --tail 50 --follow --timestamps redis -``` - -- Monitor the mariadb container: - -```bash -docker-compose logs --tail 50 --follow --timestamps mariadb -``` - -- Monitor the phpmyadmin container: - -```bash -docker-compose logs --tail 50 --follow --timestamps phpmyadmin -``` - -- Restart docker containers: - -```bash -docker-compose restart -``` - -- Destroy all containers, opposite of `up` command: - -```bash -docker-compose down -``` - -- Rebuild app container: - -```bash -docker-compose build app -``` - -Check [docker](https://docs.docker.com/engine/reference/commandline/docker/) and -[docker-compose](https://docs.docker.com/compose/reference/) documentations for -more insights. - -## Known issues - -### Allocation failed - JavaScript heap out of memory - -This happens when running `pnpm install`. - -👉 By default, docker might not have access to enough RAM. Allocate more memory -and run `pnpm install` again. - -### (Linux) Files created inside container are attributed to root locally - -You may use Linux user namespaces to fix this on your machine: - -::: info Note - -Replace "username" with your local username - -::: - -1. Go to `/etc/docker/daemon.json` and add: - - ```json - { - "userns-remap": "username" - } - ``` - -2. Configure the subordinate uid/guid: - - ```bash - # in /etc/subuid - username:1000:1 - username:100000:65536 - ``` - - ```bash - # in /etc/subgid - username:1000:1 - username:100000:65536 - ``` - -3. Restart docker: - - ```bash - sudo systemctl restart docker - ``` - -4. That's it! Now, the root user in the container will be mapped to the user on - your local machine, no more permission issues! 🎉 - -You can check -[this great article](https://www.jujens.eu/posts/en/2017/Jul/02/docker-userns-remap/) -to know more about how it works. + > Kommandot `docker-compose up -d` startar 4 behållare i + > bak \ No newline at end of file diff --git a/docs/src/sv/getting-started/_category_.json b/docs/src/sv/getting-started/_category_.json index 877a378f..d5493a75 100644 --- a/docs/src/sv/getting-started/_category_.json +++ b/docs/src/sv/getting-started/_category_.json @@ -1,4 +1,4 @@ { - "label": "Getting Started", + "etikett": "Komma igång", "position": 2 -} +} \ No newline at end of file diff --git a/docs/src/sv/getting-started/auth.md b/docs/src/sv/getting-started/auth.md index ff5d59c0..544aaab7 100644 --- a/docs/src/sv/getting-started/auth.md +++ b/docs/src/sv/getting-started/auth.md @@ -1,87 +1,86 @@ --- -title: Authentication & Authorization +titel: Autentisering och behörighet sidebarDepth: 3 --- -# Authentication & Authorization +# Autentisering och behörighet -Castopod handles authentication and authorization using `codeigniter/shield` -coupled with custom rules. Roles and permissions are defined at two levels: +Castopod hanterar autentisering och behörighet med hjälp av `codeigniter/shield` med anpassade regler. Roller och behörigheter definieras på två nivåer: -1. [instance wide](#1-instance-wide-roles-and-permissions) -2. [per podcast](#2-per-podcast-roles-and-permissions) +1. [På instansnivå](#1-roller-och-behorigheter-pa-instansniva) +2. [Per podcast](#2-roller-och-behorigheter-per-podcast) -## 1. Instance wide roles and permissions +## 1. Roller och behörigheter på instansnivå -### Instance roles +### Roller på instansen -| role | description | permissions | -| ----------- | ----------------------------------- | ------------------------------------------------------------------------------------------ | -| Super admin | Has complete control over Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks | -| Manager | Manages Castopod's content. | podcasts.create, podcasts.import, persons.manage, pages.manage | -| Podcaster | General users of Castopod. | admin.access | +| roll | beskrivning | behörigheter | +| ------------- | ----------------------------------------- | ---------------------------------------------------------------------------------------------- | +| Super admin | Har full kontroll över Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks | +| Manager | Hanterar Castopods innehåll. | podcasts.create, podcasts.import, persons.manage, pages.manage | +| Podcaster | Allmänna användare av Castopod. | admin.access | -### Instance permissions +### Behörigheter på instansen -| permission | description | -| ----------------------- | ------------------------------------------------------------------ | -| admin.access | Can access the Castopod admin area. | -| admin.settings | Can access the Castopod settings. | -| users.manage | Can manage Castopod users. | -| persons.manage | Can manage persons. | -| pages.manage | Can manage pages. | -| podcasts.view | Can view all podcasts. | -| podcasts.create | Can create new podcasts. | -| podcasts.import | Can import podcasts. | -| fediverse.manage-blocks | Can block fediverse actors/domains from interacting with Castopod. | +| behörighet | beskrivning | +| ------------------------- | --------------------------------------------------------- | +| admin.access | Kan komma åt Castopods administrationsområde. | +| admin.settings | Kan komma åt Castopods inställningar. | +| users.manage | Kan hantera Castopod-användare. | +| persons.manage | Kan hantera personer. | +| pages.manage | Kan hantera sidor. | +| podcasts.view | Kan se alla podcasts. | +| podcasts.create | Kan skapa nya podcasts. | +| podcasts.import | Kan importera podcasts. | +| fediverse.manage-blocks | Kan blockera fediverse-aktörer/domäner från att interagera med Castopod. | -## 2. Per podcast roles and permissions +## 2. Roller och behörigheter per podcast -### Per podcast roles +### Roller per podcast -| role | description | permissions | -| ------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Admin | Has complete control of podcast #{id}. | \* | -| Editor | Manages content and publications of podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments | -| Author | Manages content of podcast #{id} but cannot publish them. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips | -| Guest | General contributor of the podcast #{id}. | view, episodes.view | +| roll | beskrivning | behörigheter | +| -------- | -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Admin | Har fullständig kontroll över podcast #{id}. | \* | +| Redaktör | Hanterar innehåll och publicering för podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments | +| Författare | Hanterar innehållet för podcast #{id}, men kan inte publicera det. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips | +| Gäst | Allmän medarbetare för podcast #{id}. | view, episodes.view | -### Per podcast permissions +### Behörigheter per podcast -| permission | description | -| ---------------------------- | ------------------------------------------------------------------------ | -| view | Can view dashboard and analytics of podcast #{id}. | -| edit | Can edit podcast #{id}. | -| delete | Can delete podcast #{id}. | -| manage-import | Can synchronize imported podcast #{id}. | -| manage-persons | Can manage subscriptions of podcast #{id}. | -| manage-subscriptions | Can manage subscriptions of podcast #{id}. | -| manage-contributors | Can manage contributors of podcast #{id}. | -| manage-platforms | Can set/remove platform links of podcast #{id}. | -| manage-publications | Can publish podcast #{id}. | -| manage-notifications | Can view and mark notifications as read for podcast #{id}. | -| interact-as | Can interact as the podcast #{id} to favourite, share or reply to posts. | -| episodes.view | Can view dashboard and analytics of podcast #{id}. | -| episodes.create | Can create episodes for podcast #{id}. | -| episodes.edit | Can edit podcast #{id}. | -| episodes.delete | Can delete podcast #{id}. | -| episodes.manage-persons | Can manage subscriptions of podcast #{id}. | -| episodes.manage-clips | Can manage video clips or soundbites of podcast #{id}. | -| episodes.manage-publications | Can publish podcast #{id}. | -| episodes.manage-comments | Can create/remove episode comments of podcast #{id}. | +| behörighet | beskrivning | +| ------------------------------- | --------------------------------------------------------------------------------------- | +| view | Kan visa podcast #{id}s instrumentpanel och analysera. | +| edit | Kan redigera podcast #{id}. | +| delete | Kan ta bort podcast #{id}. | +| manage-imports | Kan synkronisera importerad podcast #{id}. | +| manage-persons | Kan hantera prenumerationer för podcast #{id}. | +| manage-subscriptions | Kan hantera prenumerationer för podcast #{id}. | +| manage-contributors | Kan hantera medarbetare för podcast #{id}. | +| manage-platforms | Kan konfigurera/ta bort länkar till podcast #{id}s plattform. | +| manage-publications | Kan publicera podcast #{id}. | +| manage-notifications | Kan visa och markera meddelanden som lästa för podcast #{id}. | +| interact-as | Kan interagera som podcast #{id} för att lägga till, dela eller svara på meddelanden. | +| episodes.view | Kan visa podcast #{id}s instrumentpanel och analysera. | +| episodes.create | Kan skapa episoder för podcast #{id}. | +| episodes.edit | Kan redigera podcast #{id}. | +| episodes.delete | Kan ta bort podcast #{id}. | +| episodes.manage-persons | Kan hantera prenumerationer för podcast #{id}. | +| episodes.manage-clips | Kan hantera videoklipp eller ljudklipp för podcast #{id}. | +| episodes.manage-publications | Kan publicera podcast #{id}. | +| episodes.manage-comments | Kan skapa/ta bort kommentarer för podcast #{id}s episod. | - + \ No newline at end of file diff --git a/docs/src/sv/getting-started/docker.md b/docs/src/sv/getting-started/docker.md index 762465fb..30d1e605 100644 --- a/docs/src/sv/getting-started/docker.md +++ b/docs/src/sv/getting-started/docker.md @@ -1,160 +1,146 @@ ---- -title: Officiella Docker images -sidebarDepth: 3 ---- +# Officiella Docker-bilder -# Officiella Docker images +Castopod skickar 3 Docker-bilder till Docker-hubben under sin automatiserade byggprocess: -Castopod pushes 3 Docker images to the Docker Hub during its automated build -process: +- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): en allt-i-ett Castopod-bild som använder nginx unit +- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): apppaketet med alla Castopods beroenden +- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): en Nginx-konfiguration för Castopod -- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): an all - in one castopod image using nginx unit -- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): apppaketet med - alla Castopod-beroenden -- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): en - Nginx konfiguration för Castopod +Förutom detta behöver Castopod en MySQL-kompatibel databas. En Redis-databas kan läggas till som en cachemanager. -Dessutom kräver Castopod en MySQL-kompatibel databas. En Redis databas kan -läggas till som cachehanterare. +## Stödda taggar -## Taggar som stöds +- `develop` [instabil], den senaste utvecklingsgrenen +- `beta` [stabil], den senaste betaversionen +- `1.x.x` [stabil], en specifik version (från `1.0.0`) -- `utveckla` [unstable], senaste utvecklingsgrenen -- `beta` [stable], senaste betaversionen bygger -- `latest` [stable], latest version build -- `1.x.x` [stable], specific version build (since `1.0.0`) +## Användnings exempel -## Exempel på användning +1. Installera [docker](https://docs.docker.com/get-docker/) och + [docker-compose](https://docs.docker.com/compose/install/) +2. Skapa en `docker-compose.yml`-fil med följande innehåll: -1. Installera [docker](https://docs.docker.com/get-docker/) och - [docker-komponera](https://docs.docker.com/compose/install/) -2. Skapa en `docker-compose.yml` fil med följande: + ```yml + version: "3.7" - ```yml - version: "3.7" + services: + app: + image: castopod/castopod:latest + container_name: "castopod-app" + volumes: + - castopod-media:/var/www/castopod/public/media + environment: + MYSQL_DATABASE: castopod + MYSQL_USER: castopod + MYSQL_PASSWORD: changeme + CP_BASEURL: "https://castopod.example.com" + CP_ANALYTICS_SALT: changeme + CP_CACHE_HANDLER: redis + CP_REDIS_HOST: redis + networks: + - castopod-app + - castopod-db + ports: + - 8000:8000 + restart: unless-stopped - services: - app: - image: castopod/castopod:latest - container_name: "castopod-app" - volumes: - - castopod-media:/var/www/castopod/public/media - environment: - MYSQL_DATABASE: castopod - MYSQL_USER: castopod - MYSQL_PASSWORD: changeme - CP_BASEURL: "https://castopod.example.com" - CP_ANALYTICS_SALT: changeme - CP_CACHE_HANDLER: redis - CP_REDIS_HOST: redis - networks: - - castopod-app - - castopod-db - ports: - - 8000:8000 - restart: unless-stopped + mariadb: + image: mariadb:10.5 + container_name: "castopod-mariadb" + networks: + - castopod-db + volumes: + - castopod-db:/var/lib/mysql + environment: + MYSQL_ROOT_PASSWORD: changeme + MYSQL_DATABASE: castopod + MYSQL_USER: castopod + MYSQL_PASSWORD: changeme + restart: unless-stopped - mariadb: - image: mariadb:10.5 - container_name: "castopod-mariadb" - networks: - - castopod-db - volumes: - - castopod-db:/var/lib/mysql - environment: - MYSQL_ROOT_PASSWORD: changeme - MYSQL_DATABASE: castopod - MYSQL_USER: castopod - MYSQL_PASSWORD: changeme - restart: unless-stopped + redis: + image: redis:7.0-alpine + container_name: "castopod-redis" + volumes: + - castopod-cache:/data + networks: + - castopod-app - redis: - image: redis:7.0-alpine - container_name: "castopod-redis" - volumes: - - castopod-cache:/data - networks: - - castopod-app + volumes: + castopod-media: + castopod-db: + castopod-cache: - volumes: - castopod-media: - castopod-db: - castopod-cache: + networks: + castopod-app: + castopod-db: + ``` - networks: - castopod-app: - castopod-db: - ``` + Du behöver anpassa vissa variabler efter dina behov (t.ex. `CP_BASEURL`, + `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` och `CP_ANALYTICS_SALT`). - Du måste anpassa vissa variabler efter dina behov (t.ex. `CP_BASEURL`, - `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` och `CP_ANALYTICS_SALT`). +3. Installera en omvänd proxy för TLS (SSL/HTTPS) -3. Ställ in en omvänd proxy för TLS (SSL/HTTPS) + TLS krävs för att ActivityPub ska fungera. Detta kan enkelt hanteras av en omvänd proxy, till exempel med [Caddy](https://caddyserver.com/): - TLS är obligatoriskt för ActivityPub att arbeta. Detta jobb kan enkelt - hanteras av en omvänd proxy, till exempel med - [Caddy](https://caddyserver.com/): + ``` + # Castopod + castopod.example.com { + reverse_proxy localhost:8000 + } + ``` - ``` - #castopod - castopod.example.com { - reverse_proxy localhost:8000 - } - ``` +4. Kör `docker-compose up -d`, vänta på att det initialiseras på + `https://castopod.example.com/cp-install` för att slutföra konfigurationen av Castopod! -4. Kör `docker-komponera upp -d`, vänta på att den initieras och gå vidare till - `https://castopod.example.com/cp-install` för att slutföra installationen av - Castopod! - -5. Ni är alla klara, börja podcasting! 🎙️🚀 +5. Du är redo att börja podcasta! 🎙️🚀 ## Miljövariabler -- **castopod/castopod** and **castopod/app** +- **castopod/castopod** och **castopod/app** - | Variabel namn | Type (`default`) | Standard | - | ------------------------------------- | ----------------------- | ---------------- | - | **`CP_BASEURL`** | sträng | `odefinierad` | - | **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` | - | **`CP_ADMIN_GATEWAY`** | ?sträng | `"cp-admin"` | - | **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` | - | **`CP_ANALYTICS_SALT`** | string | `odefinierad` | - | **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` | - | **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` | - | **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` | - | **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` | - | **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` | - | **`CP_CACHE_HANDLER`** | [`"file"` 或 `"redis"`] | `"file"` | - | **`CP_REDIS_HOST`** | ?string | `"localhost"` | - | **`CP_REDIS_PASSWORD`** | ?string | `null` | - | **`CP_REDIS_PORT`** | ?number | `6379` | - | **`CP_REDIS_DATABASE`** | ?number | `0` | - | **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` | - | **`CP_EMAIL_FROM`** | ?string | `undefined` | - | **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` | - | **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` | - | **`CP_EMAIL_SMTP_PORT`** | ?number | `25` | - | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` eller `"ssl"`] | `"tls"` | - | **`CP_ENABLE_2FA`** | ?boolean | `undefined` | - | **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` | - | **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` | - | **`CP_MEDIA_S3_KEY`** | ?string | `undefined` | - | **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` | - | **`CP_MEDIA_S3_REGION`** | ?string | `undefined` | - | **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` | - | **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` | - | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` | - | **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` | - | **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` | - | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | - | **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` | - | **`CP_TIMEOUT`** | ?number | `900` | + | Variabel namn | Typ (`default`) | Standardvärde | + | -------------------------------------- | ------------------------ | ---------------- | + | **`CP_BASEURL`** | sträng | `undefined` | + | **`CP_MEDIA_BASEURL`** | ?sträng | `CP_BASEURL` | + | **`CP_ADMIN_GATEWAY`** | ?sträng | `"cp-admin"` | + | **`CP_AUTH_GATEWAY`** | ?sträng | `"cp-auth"` | + | **`CP_ANALYTICS_SALT`** | sträng | `undefined` | + | **`CP_DATABASE_HOSTNAME`** | ?sträng | `"mariadb"` | + | **`CP_DATABASE_NAME`** | ?sträng | `MYSQL_DATABASE` | + | **`CP_DATABASE_USERNAME`** | ?sträng | `MYSQL_USER` | + | **`CP_DATABASE_PASSWORD`** | ?sträng | `MYSQL_PASSWORD` | + | **`CP_DATABASE_PREFIX`** | ?sträng | `"cp_"` | + | **`CP_CACHE_HANDLER`** | [`"file"` eller `"redis"`] | `"file"` | + | **`CP_REDIS_HOST`** | ?sträng | `"localhost"` | + | **`CP_REDIS_PASSWORD`** | ?sträng | `null` | + | **`CP_REDIS_PORT`** | ?tal | `6379` | + | **`CP_REDIS_DATABASE`** | ?tal | `0` | + | **`CP_EMAIL_SMTP_HOST`** | ?sträng | `undefined` | + | **`CP_EMAIL_FROM`** | ?sträng | `undefined` | + | **`CP_EMAIL_SMTP_USERNAME`** | ?sträng | `"localhost"` | + | **`CP_EMAIL_SMTP_PASSWORD`** | ?sträng | `null` | + | **`CP_EMAIL_SMTP_PORT`** | ?tal | `25` | + | **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` eller `"ssl"`] | `"tls"` | + | **`CP_ENABLE_2FA`** | ?boolesk | `undefined` | + | **`CP_MEDIA_FILE_MANAGER`** | ?sträng | `undefined` | + | **`CP_MEDIA_S3_ENDPOINT`** | ?sträng | `undefined` | + | **`CP_MEDIA_S3_KEY`** | ?sträng | `undefined` | + | **`CP_MEDIA_S3_SECRET`** | ?sträng | `undefined` | + | **`CP_MEDIA_S3_REGION`** | ?sträng | `undefined` | + | **`CP_MEDIA_S3_BUCKET`** | ?sträng | `undefined` | + | **`CP_MEDIA_S3_PROTOCOL`** | ?tal | `undefined` | + | **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolesk | `undefined` | + | **`CP_MEDIA_S3_KEY_PREFIX`** | ?sträng | `undefined` | + | **`CP_DISABLE_HTTPS`** | [1 eller 0] | `undefined` | + | **`CP_MAX_BODY_SIZE`** | ?tal (med suffix) | `512M` | + | **`CP_PHP_MEMORY_LIMIT`** | ?tal (med suffix) | `512M` | + | **`CP_TIMEOUT`** | ?tal | `900` | - **castopod/web-server** - | Variabelt namn | Typ | Standard | - | ---------------------- | --------------------- | -------- | - | **`CP_APP_HOSTNAME`** | ?string | `"app"` | - | **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` | - | **`CP_TIMEOUT`** | ?number | `900` | + | Variabel namn | Typ | Standardvärde | + | ------------------------ | -----------------------| -------------- | + | **`CP_APP_HOSTNAME`** | ?sträng | `"app"` | + | **`CP_MAX_BODY_SIZE`** | ?tal (med suffix) | `512M` | + | **`CP_TIMEOUT`** | ?tal | `900` | \ No newline at end of file diff --git a/docs/src/sv/getting-started/install.md b/docs/src/sv/getting-started/install.md index 27aa903a..cd6a4596 100644 --- a/docs/src/sv/getting-started/install.md +++ b/docs/src/sv/getting-started/install.md @@ -5,218 +5,114 @@ sidebarDepth: 3 # Hur man installerar Castopod? -Castopod var tänkt att vara lätt att installera. Oavsett om du använder -dedikerade eller delade webbhotell kan du installera det på de flesta -PHP-MySQL-kompatibla webbservrar. +Castopod är utformat för att vara enkelt att installera. Oavsett om du +använder dedikerad eller delad hosting kan du installera det på de flesta +webbserverar som är kompatibla med PHP-MySQL. -::: tips Anteckning +::: tip Tips Vi har släppt officiella Docker-bilder för Castopod! -Om du föredrar att använda Docker, kan du hoppa över detta och gå direkt till -[dockerdokumentationen](./docker.md) för Castopod. +Om du vill använda Docker kan du hoppa över den här delen och gå direkt +till [Docker-dokumentationen](./docker.md) för Castopod. ::: -## Krav +## Förutsättningar -- PHP v8.1 only -- MySQL version 5.7 eller högre eller MariaDB version 10.2 eller högre +- PHP v8.1 endast +- MySQL version 5.7 eller senare eller MariaDB version 10.2 eller senare - Stöd för HTTPS -- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's - incoming requests +- En [ntp-synkad klocka](https://wiki.debian.org/NTP) för att validera federationens inkommande förfrågningar -### PHP v8.1 only +### PHP v8.1 endast -PHP version 8.1 is required, with the following extensions installed: +PHP-version 8.1 krävs, med följande installerade tillägg: -- [intl](https://php.net/manual/en/intl.requirements.php) -- [libcurl](https://php.net/manual/en/curl.requirements.php) -- [mbstring](https://php.net/manual/en/mbstring.installation.php) +- [intl](https://www.php.net/manual/fr/intl.requirements.php) +- [libcurl](https://www.php.net/manual/fr/curl.requirements.php) +- [mbstring](https://www.php.net/manual/fr/mbstring.installation.php) - [gd](https://www.php.net/manual/en/image.installation.php) med **JPEG**, - **PNG** och **WEBP** bibliotek. -- [exif](https://www.php.net/manual/en/exif.installation.php) + **PNG** och **WEBP**-bibliotek. +- [exif](https://www.php.net/manual/fr/exif.installation.php) -Se dessutom till att följande tillägg är aktiverade i din PHP: +Dessutom, se till att följande tillägg är aktiverade i din PHP: -- json (aktiverad som standard - stäng inte av) -- xml (aktiverat som standard - stäng inte av) -- [mysqlnd](https://php.net/manual/en/mysqlnd.install.php) +- json (aktiverat som standard - inaktivera inte det) +- xml (aktiverat som standard - inaktivera inte det) +- [mysqlnd](https://www.php.net/manual/fr/mysqlnd.install.php) -### MySQL kompatibel databas +### Kompatibel MySQL-databas > Vi rekommenderar att du använder [MariaDB](https://mariadb.org). -::: varning Varning +::: warning Varning -Castopod fungerar endast med stödda MySQL 5.7 eller högre kompatibla databaser. -Den kommer att bryta med den tidigare MySQL v5.6 till exempel eftersom dess slut -var den 5 februari 2021. +Castopod fungerar bara med MySQL-databaser 5.7 eller senare. Versionerna 5.6 (vars support upphörde 5 februari 2021) eller tidigare av MySQL fungerar inte. ::: -Du behöver serverns värdnamn, databasnamn, användarnamn och lösenord för att -slutföra installationen. Om du inte har dessa kontaktar du din -serveradministratör. +Du behöver värdnamnet för servern, databasnamnet, användarnamnet och lösenordet för att slutföra installationsprocessen. Om du inte har denna information, kontakta din administratör. -#### Privilegier +#### Åtkomsträttigheter -Användare måste ha minst dessa rättigheter i databasen för att Castopod ska -fungera: `CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`, -`UPDATE`, `REFERENCES`, `CREATE VIEW`. +Användaren måste ha åtminstone följande åtkomsträttigheter för databasen så att Castopod fungerar: `CREATE`, `ALTER`, `DELETE`, `EXECUTE`, +`INDEX`, `INSERT`, `SELECT`, `UPDATE`, `REFERENCES`, `CREATE VIEW`. -### (Valfritt) FFmpeg v4.1.8 eller högre för videoklipp +### (Valfritt) FFmpeg v4.1.8 eller senare för videoklipp -[FFmpeg](https://www.ffmpeg.org/) version 4.1.8 eller högre krävs om du vill -generera videoklipp. Följande tillägg måste installeras: +[FFmpeg](https://www.ffmpeg.org/) version 4.1.8 eller senare krävs om du vill generera videoklipp. Följande tillägg måste vara installerade: -- **FreeType 2** bibliotek för - [gd](https://www.php.net/manual/en/image.installation.php). +- **FreeType 2**-bibliotek för [gd](https://www.php.net/manual/en/image.installation.php). ### (Valfritt) Andra rekommendationer -- Redis för bättre cache-prestanda. -- CDN för statiska filer caching och bättre prestanda. -- e-post gateway för förlorade lösenord. +- Redis för bättre cacheprestanda. +- CDN för att cachera statiska filer och förbättra prestanda. +- E-postgateway för lösenord som har gått förlorade. -## Installationsanvisningar +## Installationsinstruktioner -### Förutsättningar +### Förberedelser -0. Skaffa en webbserver med [krav](#requirements) installerat -1. Skapa en MySQL-databas för Castopod med en användare som har åtkomst till och - modifieringsrättigheter (för mer info, se - [MySQL-kompatibel databas](#mysql-compatible-database)). +0. Skaffa en webbserver med [de förutsättningar](#forutsattningar) installerade. +1. Skapa en MySQL-databas för Castopod med en användare som har åtkomsträttigheter och redigeringsrättigheter (för mer information, se [Kompatibel MySQL-databas](#kompatibel-mysql-databas)). 2. Aktivera HTTPS på din domän med ett _SSL-certifikat_. -3. Ladda ner och packa upp det senaste [Castopod Package](https://castopod.org/) - på webbservern om du inte redan har det. - - ⚠️ Sätt webbserverdokumentroten till `public/` undermappen i mappen - `castopod`. -4. Add **cron tasks** on your web server for various background processes - (replace the paths accordingly): +3. Ladda ner och packa upp den senaste [Castopod-paketet](https://castopod.org/) på webbservern om du inte redan har gjort det. + - ⚠️ Låt roten till webbserverdokumentet peka till undermappen `public/` i `castopod`-mappen. +4. Lägg till **cron-uppgifter** på din webbserver för olika bakgrundsprocesser (ersätt sökvägarna enligt behov): ```bash * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1 ``` - **Note** - If you do not add this cron task, the following Castopod features - will not work: + **Obs** - Om du inte lägger till denna cron-uppgift kommer följande funktioner i Castopod inte att fungera: - - Importing a podcast from an existing RSS feed - - Broadcasting social activities to your followers in the fediverse - - Broadcasting episodes to open hubs using - [WebSub](https://en.wikipedia.org/wiki/WebSub) - - Generating video clips - - [requires FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips) + - Importera en podcast från en befintlig RSS-feed + - Sända sociala aktiviteter till dina följare i fediversumet + - Sända avsnitt till öppna nav via [WebSub](https://en.wikipedia.org/wiki/WebSub) + - Generera videoklipp - [kräver FFmpeg](#valfritt-ffmpeg-v418-eller-senare-för-videoklipp) -### (rekommenderas) Installationsguide +### (Rekommenderat sätt) Installationsguiden -1. Kör Castopod install script genom att gå till installationsguiden sidan - (`https://your_domain_name.com/cp-install`) i din favorit webbläsare. -2. Följ instruktionerna på din enhet. -3. Börja podcasting! +1. Kör Castopods installationsguide genom att gå till installationsguidens sida (`https://your_domain_name.com/cp-install`) i din favoritwebbläsare. +2. Följ de instruktioner som visas. +3. Börja sända podcasts! -::: info Notering +:::info Notera -Installationsskriptet skriver en `.env` -fil i paketroten. Om du inte kan gå via -installationsguiden kan du skapa och redigera `. nv` filen manuellt baserat på -`.env.example` filen. +Installationsguidesskriptet skapar en `.env`-fil i roten av paketet. Om du inte kan använda installationsguiden kan du manuellt skapa och redigera `.env`-filen baserat på `.env.example`-filen. ::: -### Email/SMTP setup +### E-post/SMTP-installation -E-postkonfiguration krävs för att vissa funktioner ska fungera korrekt (t.ex. -att hämta ditt glömda lösenord, skicka instruktioner till premiumprenumeranter, -…) +Konfiguration av e-post krävs för att vissa funktioner ska fungera korrekt (t.ex. återhämtning av glömt lösenord, skicka anvisningar till premium-prenumeranter, ...) -Du kan lägga till din e-postkonfiguration i din instans `.env` som så: +Du kan lägga till e-postkonfiguration i din instans `.env` på följande sätt: ```ini -# […] +# [...] -email.fromEmail="your_email_address" -email.SMTPHost="your_smtp_host" -email.SMTPUser="your_smtp_user" -email.SMTPPass="your_smtp_password" -``` - -#### Alternativ för e-postkonfiguration - -| Variabelt namn | Typ | Standard | -| ---------------- | ----------------------- | ------------- | -| **`fromEmail`** | sträng | `odefinierad` | -| **`fromName`** | sträng | `"Castopod"` | -| **`SMTPHost`** | sträng | `odefinierad` | -| **`SMTPUser`** | sträng | `odefinierad` | -| **`SMTPPass`** | sträng | `odefinierad` | -| **`SMTPPort`** | nummer | `25` | -| **`SMTPCrypto`** | [`"tls"` eller `"ssl"`] | `"tls"` | - -### Media storage - -By default, files are saved to the `public/media` folder using the file system. -If you need to relocate the `media` folder to a different location, you can -specify it in your `.env` file as shown below: - -```ini -# […] - -media.root="media" -media.storage="/mnt/storage" -``` - -In this example, the files will be saved to the /mnt/storage/media folder. Make -sure to also update your web server configuration to reflect this change. - -### S3 - -If you prefer storing your media files on an S3 compatible storage, you may -specify it in your `.env`: - -```ini -# […] - -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" -``` - -#### S3 config options - -| Variable name | Type | Default | -| ----------------------- | ------- | ----------- | -| **`endpoint`** | string | `undefined` | -| **`key`** | string | `undefined` | -| **`secret`** | string | `undefined` | -| **`region`** | string | `undefined` | -| **`bucket`** | string | `castopod` | -| **`protocol`** | number | `undefined` | -| **`pathStyleEndpoint`** | boolean | `false` | -| **`keyPrefix`** | string | `undefined` | - -## Gemenskapspaket - -If you don't want to bother with installing Castopod manually, you may use one -of the packages created and maintained by the open-source community. - -### Install with YunoHost - -[YunoHost](https://yunohost.org/) is a distribution based on Debian GNU/Linux -made up of free and open-source software packages. It manages the hardships of -self-hosting for you. - - +email.fromEmail="din_e-postadress" +email.SMTPHost=" \ No newline at end of file diff --git a/docs/src/sv/getting-started/security.md b/docs/src/sv/getting-started/security.md index c1175eab..d9b4d306 100644 --- a/docs/src/sv/getting-started/security.md +++ b/docs/src/sv/getting-started/security.md @@ -4,23 +4,19 @@ title: Säkerhet # Säkerhetsfrågor -Castopod är byggt ovanpå [CodeIgniter4](https://codeigniter.com/), ett PHP -ramverk som uppmuntrar -[goda säkerhetsmetoder](https://codeigniter.com/user_guide/concepts/security.html). +Castopod utvecklas med [CodeIgniter4](https://codeigniter.com/), ett PHP-ramverk som främjar +[goda säkerhetspraxis](https://codeigniter.com/user_guide/concepts/security.html). -För att maximera din instans säkerhet och förhindra alla skadliga attacker, vi -rekommenderar att du uppdaterar alla dina Castopod-filer behörigheter efter -installation eller uppdateringar (för att undvika eventuella föregående -tillståndsfel): +För att säkerställa bästa möjliga säkerhet för din instans och för att undvika skadliga attacker, rekommenderar vi att du uppdaterar filbehörigheterna för Castopod efter installationen och varje uppdatering (och undviker felaktiga åtkomsträttigheter till filer): -- `writable/` mapp måste vara **läsbar** och **skrivbar**. -- `public/media/` mapp måste vara **läsbar** och **skrivbar**. -- någon annan fil måste vara inställd på **readonly**. +- Mappen `writable/` bör vara åtkomlig för **läsning** och **skrivning**. +- Mappen `public/media/` bör vara åtkomlig för **läsning** och **skrivning**. +- Alla andra filer bör vara åtkomliga endast för **läsning**. -Till exempel, om du använder Apache eller NGINX med Ubuntu kan du göra följande: +Till exempel, om du använder Apache eller NGINX med Ubuntu, kan du köra följande kommandon: ```bash sudo chown -R root:root /path/to/castopod sudo chown -R www-data:www-data /path/to/castopod/writable sudo chown -R www-data:www-data /path/to/castopod/public/media -``` +``` \ No newline at end of file diff --git a/docs/src/sv/getting-started/update.md b/docs/src/sv/getting-started/update.md index 01acafef..b3245217 100644 --- a/docs/src/sv/getting-started/update.md +++ b/docs/src/sv/getting-started/update.md @@ -1,65 +1,66 @@ --- -title: Uppdatera +title: Uppdatering sidebarDepth: 3 --- -# Hur uppdaterar man Castopod? +# Hur installerar jag Castopod? -Efter att du installerat Castopod, kanske du vill uppdatera din instans till den -senaste -versionen för att njuta av de senaste funktionerna ✨, buggfixar 🐛 och -prestanda förbättringar ⚡. +Efter att ha installerat Castopod kan du uppdatera din instans till den senaste +versionen för att dra nytta av de senaste funktionerna ✨, buggkorrigeringarna 🐛 +och prestandaförbättringarna ⚡. -## Uppdatera instruktioner +## Instruktioner för uppdatering -0. ⚠️ Innan någon uppdatering rekommenderar vi starkt att du säkerhetskopierar - dina Castopod-filer och databas. +0. ⚠️ Innan du gör någon uppdatering rekommenderar vi starkt att du säkerhetskopierar + dina Castopod-filer och databasen . - - cf. - [Ska jag göra en säkerhetskopia innan jag uppdaterar?](#should-i-make-a-backup-before-updating) + - Se + [Borde jag säkerhetskopiera innan jag uppdaterar?](#should-i-make-a-backup-before-updating) 1. Gå till - [releaser sidan](https://code.castopod.org/adaures/castopod/-/releases) och - se om din instans är uppdaterad med den senaste Castopod versionen + [releases-sidan](https://code.castopod.org/adaures/castopod/-/releases) och + se om din instans är uppdaterad med den senaste Castopod-versionen - - cf. + - Se [Var hittar jag min Castopod-version?](#where-can-i-find-my-castopod-version) -2. Ladda ner det senaste utgivningspaketet som heter `Castopod Package`, du kan - välja mellan `zip` eller `tar.gz` arkiv +2. Ladda ner det senaste releaspaketet med namnet `Castopod Package`, du kan välja + mellan `zip` eller `tar.gz`-arkiv - - ⚠️ Kontrollera att du laddar ner Castopod-paketet och **INTE** källkoden + - ⚠️ Säkerställ att du laddar ner Castopod Package och **INTE** källkoden - Observera att du även kan ladda ner det senaste paketet från [castopod.org](https://castopod.org/) 3. På din server: - - Ta bort alla filer utom `.env` och `publik/media` + - Ta bort alla filer förutom `.env` och `public/media` - Kopiera de nya filerna från det nedladdade paketet till din server - ::: info Notering + ::: info Note - Du kan behöva återställa filrättigheter som under installationsprocessen. - Kontrollera [säkerhetsbekymmer](./security.md). + Du kan behöva återställa filbehörigheterna som gjordes under installationsprocessen. Kontrollera + [Security Concerns](./security.md). ::: -4. Uppdatera ditt databasschema från din `Castopod Admin` > `Om` sida eller kör: +4. Uppdatera databasschemat från din `Castopod Admin` > `About`-sida eller genom att + köra: ```bash php spark castopod:database-update ``` -5. Rensa din cache från `Castopod Admin` > `Inställningar` > `allmän` > - `Hushållning` -6. ✨ Njut av din färska instans, du är alla klara! +5. Rensa cachen från din `Castopod Admin` > `Settings` > `general` > + `Housekeeping` +6. ✨Njut av din nya instans, du är klar! -::: info Notering +::: info Note -Utgåvor kan komma med ytterligare uppdateringsinstruktioner (se -[utgåvor sidan](https://code.castopod.org/adaures/castopod/-/releases)). +Releaserna kan innehålla ytterligare uppdateringsinstruktioner (se +[releases-anteckningssidan](https://code.castopod.org/adaures/castopod/-/releases)). -- cf. - [Jag har inte uppdaterat min instans på länge… Vad ska jag göra?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do) +- Se + [Jag har inte uppdaterat min instans på länge... Vad ska jag göra?](#je-nai-pas-mis-à-jour-mon-instance-depuis-longtemps-que-devrais-je-faire) ::: @@ -71,36 +72,33 @@ Utgåvor kan komma med ytterligare uppdateringsinstruktioner (se ### Var hittar jag min Castopod-version? -Gå till din Castopod admin-panel, versionen visas längst ner till vänster hörn. +Gå till din Castopod-administrationspanel och versionen visas längst ned till vänster. -Alternativt kan du hitta versionen i `appen > Config > Constants.php` filen. +Du kan också hitta versionen i +applikationen `> Configuration > Constantes.php`-mappen. -### Jag har inte uppdaterat min instans på länge… Vad ska jag göra? +### Jag har inte uppdaterat min instans på länge... Vad ska jag göra? -Inga problem! Bara få den senaste versionen som beskrivs ovan. Endast när du går -genom utgivningsinstruktionerna (4), utför dem sekventiellt, från de äldsta till -de nyaste. +Inga problem! Du behöver bara få den senaste versionen enligt beskrivningen +ovan. När du kör uppdateringsinstruktionerna (4), kör dem sekventiellt, från äldst till nyast. -> Du kanske vill säkerhetskopiera din instans beroende på hur länge du inte har -> uppdaterat Castopod. +> Du bör säkerhetskopiera din instans beroende på datumet för din senaste Castopod-uppdatering. -Till exempel, om du är på `v1.0.0-alpha.42` och vill uppgradera till +Till exempel, om du är på `v1.0.0-alpha.42` och vill uppdatera till `v1.0.0-beta.1`: -0. (rekommenderas starkt) Gör en säkerhetskopia av dina filer och databaser. +0. (starkt rekommenderat) Säkerhetskopiera dina filer och databas. -1. Ladda ner den senaste utgåvan, skriv över dina filer samtidigt som du - behåller `.env` och `public/media`. +1. Ladda ner den senaste versionen, skriv över dina filer och behåll + `.env` och `public/media`. -2. Gå igenom varje utgåva uppdateringsinstruktioner sekventiellt (från äldsta - till nyaste) börjar med `v1.0.0-alpha. 3`, `v1.0.0-alpha.44`, - `v1.0.0-alpha.45`, …, `v1.0.0-beta.1`. +2. Kör uppdateringsinstruktionerna en efter en (från äldst till nyast). -3. ✨ Njut av din färska instans, du är alla klara! +3. ✨ Din nya instans är klar! -### Ska jag göra en säkerhetskopia innan jag uppdaterar? +### Borde jag göra en säkerhetskopia innan jag uppdaterar? -Vi råder dig att göra, så att du inte förlorar allt om något går fel! +Vi rekommenderar att du gör det för att inte förlora något om något går fel! -Mer generellt, rekommenderar vi att du gör regelbundna säkerhetskopior av dina -Castopod filer och databas för att hindra dig från att förlora allt… +Generellt rekommenderar vi att du regelbundet gör säkerhetskopior av +dina Castopod-filer och din databas för att undvika att förlora allt... \ No newline at end of file diff --git a/docs/src/sv/index.md b/docs/src/sv/index.md index 1c3ede76..1ceac9af 100644 --- a/docs/src/sv/index.md +++ b/docs/src/sv/index.md @@ -1,173 +1,121 @@ ---- -sidebarDepth: 2 ---- - # Välkommen 👋 [![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![stars-badge]][stars] -Castopod är en gratis hostingplattform med öppen källkod gjord för podcastare -som vill engagera och interagera med sin publik. +Castopod är en gratis och öppen plattform för podcastvärd som är avsedd för podcastvärdarna som vill utbyta och interagera med sin publik. -Castopod är lätt att installera och byggdes ovanpå -[CodeIgniter4](https://codeigniter.com/), ett kraftfullt PHP-ramverk med ett -mycket litet fotavtryck. +Castopod är lätt att installera och har utformats med hjälp av [CodeIgniter4](https://codeigniter.com/), en kraftfull PHP-ram i mycket liten skala. ## Funktioner -- 🌱  Gratis & öppen källkod (AGPL v3-licens) -- 🔐  Fokuserad på datasuveränitet: ditt innehåll, målgrupp och analys - tillhör dig, och du bara -- 🪄  Podcasting 2.0 funktioner: GUID, låst, avskrifter, finansiering, - kapitel, plats, personer, ljud, … +- 🌱  Fri, gratis och öppen källkod (licens AGPL v3) +- 🔐  Fokuserar på data suveränitet: ditt innehåll, din publik och dina statistik är din och din ensam +- 🪄 Podcasting 2.0-funktioner: GUID, låsning, transkriptioner, finansiering, kapitel, geolokalisering, deltagare, ljudklipp... - 💬  Inbyggt socialt nätverk: - - 🚀  Castopod är en del av Fediverse, ett decentraliserat socialt - nätverk - - ❤️  Skapa inlägg, dela, favorit och kommentera avsnitt -- 📈  Inbyggd analys: - - ⚖️  GDPR / CCPA / LGPD kompatibel - - 🪙  Standard IABv2 målgruppsmätning - - 🏡  Lokalanalys, ingen tredje part involverad + - 🚀  Castopod ingår i Fédivers, ett decentraliserat socialt nätverk + - ❤️  Skapa och dela inlägg, favoritmarkera avsnitt och lägg kommentarer till dem +- 📈  Inbyggda statistik: + - ⚖️  Conform GDPR / CCPA / LGPD + - 🪙 Mätning av IABv2 publik + - 🏡  Inbyggda upprättelser, inga medlingstjänster - 📢  Inbyggda marknadsföringsverktyg: - - ✅  SEO ready (open-graph meta-tags, JSON-LD, …) - - 📱  PWA: installera som en fristående app + - ✅  Klart för SEO (open-graph-metataggar, JSON-LD...) + - 📱  PWA: Install som fristående app - 🎨  Anpassningsbara temafärger - - 🎬  Generera att dela videoklipp från avsnitt - - 🔉  Generera ljudbitar - - ▶️  Inbäddbar spelare, bädda in dina avsnitt på valfri webbplats -- 💸  Monetization: - - 🔗  Finansierar länkar - - 📲  lista-att-klicka annonser + - 🎬  Skapa videoklipp som är klara för att delas från avsnitten + - 🔉  Skapa ljudklipp + - ▶️  Bädda in dina avsnitt på alla webbplatser +- 💸  Monetisering: + - 🔗  Finansieringslänkar + - 📲  Annons “lyssna-till-klick” - 🤝  value4value / WebMonetization - - 💎  Premium podcasts -- 📡  Publicera dina avsnitt överallt med RSS: - - 📱  På alla index och appar: Podcast Index, Apple Podcasts, Spotify, - Google Podcasts, Deezer, Podcast Addict, Podfriend, … - - ⚡  Sänd dina avsnitt direkt med WebSub -- 📥  Podcast import: flytta din befintliga podcast till Castopod -- 📤  Flytta ut din podcast från Castopod -- 🔀  Flera hyresgäst: värd så många podcasts du vill -- 👥  Flera användare: lägg till bidragslämnare och ange roller -- 🌎  i18n support: översatt till engelska, franska, polska, tyska, - brasilianska portugisiska & spanska… med - [mer att komma](https://translate.castopod.org)! + - 💎  Premium-poddar +- 📡 Publicera dina avsnitt överallt med RSS: + - 📱  På alla indexer och appar: Podcast Index, Podcasts Apple, Spotify, Google Podcasts, Deezer, Podcast Addict, Podfriend... + - ⚡ så publicerade dina avsnitt med WebSub +- 📥  Importera podd: flytta din befintliga podcast till Castopod +- 📤  Flytta din podcast till en annan värd +- 🔀  Multi-Mandant: Värd så många poddar du vill +- 👥  Multi-Användare: Lägg till redaktörer och definiera deras befogenheter +- 🌎  i18n-stöd: Översatt till engelska, franska, polska, tyska, portugisiska, brasilianska, spanska... och + [mer i framtiden](https://translate.castopod.org)! -## Motivation +## Varför Castopod? -The podcasting ecosystem is decentralized by nature: you can create your podcast -as an RSS file, publish it on the web and have it shared everywhere online. +Podcasting ekosystemet är av naturen decentraliserat: du kan skapa din podcast som en RSS-fil, publicera den på webben och få den delad överallt online. -It is in fact one of the only media to have stayed this way for a long time. +Det är faktiskt en av de få medier som har stannat på detta sätt under lång tid. -As usages are evolving, more and more people are getting into podcasts: whether -it is creators finding new ways to share their ideas, or listeners in the search -for better content. +I takt med att användningen utvecklas blir det fler och fler människor som engagerar sig i poddar: antingen är det skapare som hittar nya sätt att dela sina idéer, eller lyssnare som letar efter bättre innehåll. -With podcasting becoming more widely used, some companies are trying to shift it -towards a more controlled and centralized medium. +Med podcasting som används alltmer försöker vissa företag att flytta den mot ett mer kontrollerat och centraliserat medium. -Castopod was created in an effort to provide an open and sustainable alternative -to hosting your podcasts, promoting decentralization to ensure that podcasters -creativity can express itself. +Castopod skapades för att erbjuda ett öppet och hållbart alternativ för att vara värd för dina poddar, och främjar decentralisering för att säkerställa att podcasters kreativitet kan uttryckas. -This project is pushed by the open-source community, and specifically by the -[Fediverse](https://fediverse.party/en/fediverse/) and -[Podcasting 2.0](https://podcastindex.org/) movements. +Detta projekt drivs av open source-gruppen, och specifikt av volontärerna inom [Fediverse](https://fediverse.party/en/fediverse/) och [Podcasting 2.0](https://podcastindex.org/). ## Jämförelse med andra lösningar -We believe that a solution is not necessarily right for everyone, it highly -depends on your needs. So, here are comparisons with other tools to help you to -gauge whether Castopod is the right fit for you. +Vi tror att ingen lösning är rätt för alla, det beror mycket på dina behov. Så här är jämförelser med andra verktyg för att hjälpa dig att avgöra om Castopod är rätt för dig. ### Castopod vs Wordpress -Castopod is often referred to as "the Wordpress for podcasts" because of the -similarities between the two. In some ways this is true. And actually, Castopod -was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption -from the community and the number of websites running it. +Castopod kallas ofta "Wordpress för podcasts" på grund av likheterna mellan de två. På vissa sätt är detta sant. Faktum är att Castopod har fått mycket inspiration av WordPress-ekosystemet, sett enkelheten att anamma det från samhället och antal webbplatser som kör det. -Just like Wordpress, Castopod is free & open source, built using PHP with a -MySQL database and is packaged in a way that you can easily install on most web -servers. +Precis som Wordpress är Castopod gratis och open source, byggt med PHP med en MySQL-databas och paketerat på ett sätt som gör att du enkelt kan installera det på de flesta webbservrar. -Wordpress is a great way to create your website and extend it with plugins to -get what you want. It is a full fledged CMS that helps you get any type of -website online. +Wordpress är ett bra sätt att skapa din webbplats och utöka den med plugins för att få det du vill ha. Det är ett fullfjädrat CMS som hjälper dig att få vilken typ av webbplats som helst online. -On the other hand, Castopod is meant to address the podcasters needs -specifically, focusing on podcasting, and nothing else. You don't need any -plugin to get you started on your podcasting journey. +Å andra sidan är Castopod avsett att hantera specifikt podcastvärdbehovet, genom att fokusera på podcasting och inget annat. Du behöver inga plugins för att komma igång med din podcast journey. -This allows optimizing the processes specific to podcasting: ranging from the -creation of your podcasts and the publication of new episodes all the way to -broadcasting, marketing and analytics. +Detta gör det möjligt att optimera processerna som är specifika för podcasting: från skapandet av dina poddar och publiceringen av nya avsnitt ända till sändning, marknadsföring och analys. -Finally, depending on your needs, Wordpress and Castopod can even live side by -side as they share the same requirements! +Beroende på dina behov kan Wordpress och Castopod till och med leva sida vid sida, eftersom de delar samma krav! ### Castopod vs Funkwhale -Funkwhale is a self-hosted, modern free and open-source music server. Just as -Castopod, Funkwhale is on the fediverse, a decentralized social network allowing -interoperability between the two. +Funkwhale är en självhostad, modern fri och öppen musikserver. Precis som Castopod, är Funkwhale på fediverse, ett decentraliserat socialt nätverk som tillåter interoperabilitet mellan de två. -Funkwhale was initially built around music. And later on, as the project -evolved, the ability to host podcasts was introduced. +Funkwhale byggdes ursprungligen runt musik. Och senare, när projektet utvecklades, introducerades möjligheten att vara värd för poddar. -Unlike Funkwhale, Castopod has been designed and built around podcasting -exclusively. This allows easier implementation for features related to the -podcasting ecosystem, such as the podcasting 2.0 features (transcripts, -chapters, locations, persons, …). +Till skillnad från Funkwhale har Castopod utformats och byggts runt podcasting uteslutande. Detta gör att det är enklare att implementera funktioner som är relaterade till podcasting-ekosystemet, såsom podcasting 2.0-funktioner (transkriptioner, kapitel, platser, personer,...). -So, you should probably use Funkwhale if you want to host your music, and use -Castopod if you want to host your podcasts. +Så du bör förmodligen använda Funkwhale om du vill hålla din musik, och använda Castopod om du vill hålla dina poddar. -### Castopod vs andra podcast värdar +### Castopod vs Andra podcastvärdar -There are many solutions for you to host your podcasts, some of which are really -great and [a lot of them](https://podcastindex.org/apps) are jumping into the -Podcasting 2.0 wagon just like Castopod! +Det finns många lösningar för dig att vara värd för dina poddar, varav några är riktigt bra och [många](https://podcastindex.org/apps) hoppar på podcasting 2.0 spårvagnen precis som Castopod! -Each of these solutions differ from one another, you may compare with the -[list of features](#features). +Var och en av dessa lösningar skiljer sig från varandra, och du kan jämföra med [listan över funktioner](#features). -That being said, there are two main differences with other podcasting solutions: +Det sagt så finns det två huvudsakliga skillnader jämfört med andra podcastlösningar: -- Castopod kan vara själv värd och är den enda lösningen som gör att du kan - hålla full kontroll över vad du producerar. Dessutom, eftersom det är öppen - källkod, kan du även anpassa det som du vill. +- Castopod kan vara självhostat och är den enda lösningen som låter dig behålla full kontroll över vad du producerar. Å andra sidan, eftersom det är öppen källkod, har du möjligheten att modifiera det fritt. -- Castopod är den enda lösningen som för närvarande integrerar både ett - decentraliserat socialt nätverk med ActivityPub samt många av podcasting 2. - funktioner, i hopp om att överbrygga gapet mellan de två. +- Castopod är den enda lösningen som idag integrerar både ett decentraliserat socialt nätverk med ActivityPub och "Podcasting 2.0"-funktioner, vilket minskar klyftan mellan de två. -## Hjälp till +## Bidra -Love Castopod and would like to help? Take a look at the following documentation -to get you started. +Älskar du Castopod och vill hjälpa till? Ta en titt på följande dokumentation för att komma igång. . ### Uppförandekod -Castopod has adopted a Code of Conduct that we expect project participants to -adhere to. Please read the -[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md) -so that you can understand what actions will and will not be tolerated. +Castopod har antagit en uppförandekod som vi förväntar oss att projektets deltagare följer. Läs +[Uppförandekoden](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md) +så att du kan förstå vilka handlingar som kommer att tolereras och inte. -### Bidragande guide +### Bidragsguide -Read our [contributing guide](./contributing/guidelines.md) to learn about our -development process, how to propose bugfixes and improvements, and how to build -and test your changes to Castopod. +Läs vår [bidragsguide](./contributing/guidelines.md) för att lära dig om vår utvecklingsprocess, hur du föreslår buggfixar och förbättringar, och hur du bygger och testar dina ändringar till Castopod. -## Alla bidragsgivare ✨ +## Bidragsgivare ✨ -Thanks goes to these wonderful people -([emoji key](https://allcontributors.org/docs/en/emoji-key)): +En stor tack går till dessa underbara personer +([emoji-teckenförklaring](https://allcontributors.org/docs/en/emoji-key)): @@ -178,67 +126,10 @@ Thanks goes to these wonderful people Yassine Doghri
Yassine Doghri

💻 🐛 📖 👀 🚧 🖋 🎨 ️️️️♿️ 🌍 💬 🧑‍🏫 🚇 🤔 📆 📝 Benjamin Bellamy
Benjamin Bellamy

💻 🐛 👀 🖋 🌍 💬 🚇 🤔 📝 📆 📢 Ola Hneini
Ola Hneini

💻 👀 📖 🚧 💬 🤔 - Romain de Laage
Romain de Laage

💻 🚇 📖 🌍 🤔 - Lyonel Bernard
Lyonel Bernard

🐛 💬 🔊 🤔 - Christopher Lagonick-Weitzel
Christopher Lagonick-Weitzel

🐛 💬 🔊 🤔 - Ernesto Acosta
Ernesto Acosta

🐛 🔊 🌍 💬 🤔 - - - Bastien Luneteau
Bastien Luneteau

💻 🐛 - Cécile Ricordeau
Cécile Ricordeau

🎨 - Patryk Miś
Patryk Miś

🌍 - Marcin Lewandowski
Marcin Lewandowski

🐛 🤔 - Sebastian Janik
Sebastian Janik

💻 - Patryk Karczmarczyk
Patryk Karczmarczyk

💻 - denis d
denis d

🐛 🤔 - - - Douglas Kastle
Douglas Kastle

🐛 🤔 - cExplorer
cExplorer

🐛 🌍 - ImaCrea
ImaCrea

🐛 🤔 - Jonas S
Jonas S

💻 - LEFEBVRE Yann
LEFEBVRE Yann

🐛 - Sebastian Späth
Sebastian Späth

🐛 🤔 - rocky III
rocky III

🐛 - - - Hermann Josef Eckl
Hermann Josef Eckl

🐛 - Delhaye Cyrille
Delhaye Cyrille

🐛 🤔 - João Leandro
João Leandro

🌍 🤔 - Angelos Chouvardas
Angelos Chouvardas

🌍 - Eivind
Eivind

🌍 - Ewen
Ewen

🌍 🤔 - forght
forght

🌍 - - - glottis0q
glottis0q

🌍 - ButterflyOfFire
ButterflyOfFire

🌍 - Lucian I. Last
Lucian I. Last

🌍 - LuuzViir
LuuzViir

🌍 - CTHTC
CTHTC

🌍 - Russian Retro
Russian Retro

🌍 - Marek L'ach
Marek L'ach

🌍 - - - GunChleoc
GunChleoc

🌍 - GabiSnow
GabiSnow

🌍 - bendaha
bendaha

🌍 - Samuel Roland
Samuel Roland

🌍 - Dimitri Regnier
Dimitri Regnier

🤔 - irithys
irithys

🌍 - Sergi
Sergi

🌍 - - - ghose (XoseM)
ghose (XoseM)

🌍 - Andreas Olsson
Andreas Olsson

🌍 - leonfrom
leonfrom

🌍 - agentcobra
agentcobra

🌍 - Alessandro
Alessandro

🌍 - liimee
liimee

🌍 - Ahmed Sabouni
Ahmed Sabouni

🌍 - - - KrzysztofDomanczyk
KrzysztofDomanczyk

💻 + Jérôme Jutteau
Jérôme Jutteau

💻 🚇 📖 🌍 🤔 + Luca Wlodarz
Luca Wlodarz

🌍 + Javier M. Jurado
Javier M. Jurado

🐛 🤔 + AJ Hereford
AJ Hereford

🐛 @@ -248,32 +139,25 @@ Thanks goes to these wonderful people -This project follows the -[all-contributors](https://github.com/all-contributors/all-contributors) -specification. Contributions of any kind welcome! +Detta projekt följer [all-contributors](https://github.com/all-contributors/all-contributors) specifikationen. Bidrag av alla slag välkomnas! -## Kontakt +## Kontakta oss -You may reach us for help or ask any question you have on: +Du kan nå oss för hjälp eller om du har några frågor på: -- [Discord](https://castopod.org/discord) (för direkt interaktion med - -utvecklare och gemenskapen) -- [Ärendespårare](https://code.castopod.org/adaures/castopod/-/issues) (för - funktionsförfrågningar & felrapporter) +- [Discord](https://castopod.org/discord) (för att prata direkt med utvecklarna och gemenskapen) +- [Ärendehantering](https://code.castopod.org/adaures/castopod/-/issues) (för begäran om ny funktion eller felrapporter) -Alternatively, you can follow us on social media platforms to get news about -Castopod: +Alternativt kan du följa oss på sociala medieplattformar för att få nyheter om Castopod: -- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance) +- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon-instans) - [Twitter](https://twitter.com/castopod) - [LinkedIn](https://linkedin.com/company/castopod) - [Facebook](https://www.facebook.com/castopod) ## Sponsorer -The ongoing development of Castopod is made possible with the support of its -backers. If you'd like to help, please consider -[sponsoring Castopod's development](https://opencollective.com/castopod/contribute). +Den pågående utvecklingen av Castopod görs möjlig tack vare våra sponsorer. Om du vill hjälpa till, överväg att [stödja Castopods utveckling](https://opencollective.com/castopod/contribute).
Ad Aures Logo @@ -297,4 +181,4 @@ https://img.shields.io/github/stars/ad-aures/castopod?style=social [semantic-release]: https://github.com/semantic-release/semantic-release [discord]: https://castopod.org/discord [stars]: https://github.com/ad-aures/castopod/stargazers -[crowdin]: https://translate.castopod.org/project/castopod +[crowdin]: https://translate.castopod.org/project/castopod \ No newline at end of file