Tooling integration
* add .markdownlint-cli2.jsonc, .ansible-lint, .ansible-lint-ignore
configs (permissive day-1: cosmetic rules disabled, semantic ones on)
* extend scripts/install/lint.sh with generic install_pip_pkg helper +
ensure_ansible_lint / ensure_galaxy_importer / ensure_markdownlint_cli2
ensure_* functions (pip / npm with sudo / --user / --break-system-packages
fallbacks). install_ansible_tools now also pulls ansible-lint and
galaxy-importer; new `markdown` install group.
* extend scripts/lint/ansible.sh to run ansible-lint after the existing
syntax-check.
* add scripts/lint/markdown.sh and scripts/lint/galaxy.sh runners. The
galaxy runner parallelizes via xargs (-P=$(nproc)), prints OK/FAIL per
role, and treats `bare-name dependency` errors as success since our
roles/ tree is not a Galaxy collection layout. All other Galaxy schema
errors still fail.
* Makefile: new lint-markdown and lint-galaxy targets, both wired into
`make lint`.
* CI: new workflows lint-markdown.yml and lint-galaxy.yml; lint-ansible.yml
now installs ansible-core + ansible-lint; ci-orchestrator wires both
new lint workflows into lint-gate.
Galaxy schema fixes
* shorten the canonical `galaxy_info.company` block from three lines to
two ("Kevin Veen-Birkenbach\nhttps://www.veen.world", 45 chars) so it
stays under Galaxy's hard 50-char limit. Updated everywhere: 229 role
meta/main.yml plus _CANONICAL_COMPANY in
tests/lint/repository/test_role_meta_main_galaxy_schema.py.
* shorten 19 over-long role descriptions to <=255 chars.
* add stub READMEs for sys-svc-compose-ca and sys-utils-service-loader.
Markdown baseline fixes
* markdownlint-cli2 --fix run repo-wide (formatting normalization
across CHANGELOG, role READMEs, docs).
* manual MD041 fixes: prepend H1 in 15 files (CHANGELOG, LICENSE,
TODO.md helpers, role README templates, etc.).
* MD025 / MD003 / MD001 / MD032 manual fixes for heading-style and
list-spacing edge cases.
* role README content polish: "## Single Point of Truth (SPOT)" headings
renamed to "## User data resolution" (D3 self-label rule).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4.7 KiB
Pixelfed Administration
Accessing Services
Application Access
To gain shell access to the application container, run the following command:
compose exec -it application bash
Clear Cache
compose exec -it application php artisan cache:clear
Database Access
To access the MariaDB instance in the database container, run the following command:
compose exec -it database mariadb -u pixelfed -p
User Management via CLI in Pixelfed Docker Setup
To manage users in your Pixelfed instance running in a Docker container, as configured in Kevin Veen-Birkenbach's web-app-pixelfed role, you can follow these steps via the Command Line Interface (CLI):
-
Access the Application Container: First, gain shell access to the Pixelfed application container. Use the command provided in the README:
compose exec -it application bashThis command lets you access the bash shell inside the
applicationDocker container where Pixelfed is running. -
Navigate to Pixelfed Directory: Once inside the container, navigate to the Pixelfed directory. This is typically the root directory where Pixelfed is installed.
-
Use Artisan Commands: Pixelfed is built on Laravel, so you'll use Laravel's Artisan CLI for user management. Here are some common tasks:
-
Create a New User:
php artisan user:createThis command will prompt you to enter the user's details like username, email, and password.
-
List Users:
php artisan user:listThis command displays a list of all users.
-
Delete a User:
php artisan user:delete {username}Replace
{username}with the actual username of the user you wish to delete. -
Reset Password:
php artisan user:reset-password {username}This will initiate a password reset process for the specified user.
-
-
Verify and Validate: Depending on your Pixelfed's configuration, especially if email verification is required, you might need to perform additional steps to verify new accounts or modify user details.
-
Exit the Container: After completing your user management tasks, exit the Docker container shell by typing
exit.
Note
- Commands Variability: The available Artisan commands can vary based on your version of Pixelfed and Laravel. Always refer to the specific documentation for your version.
- Permissions: Ensure you have the necessary permissions and rights within the Docker container to perform these actions.
- Environment Specifics: The exact paths and commands may vary based on your Docker and Pixelfed setup, as defined in your
compose.ymland other configuration files.
This process provides a streamlined way to manage Pixelfed users directly from the CLI in a Dockerized environment, ensuring that you can efficiently administer your Pixelfed instance without needing to access the Pixelfed web interface.
Instagram Import Cleanup
If you have imported posts from Instagram, you can clean up the imported data and files as follows:
Database Cleanup
Run these commands inside your MariaDB shell to remove import related data:
DELETE from import_posts WHERE 1;
DELETE from import_jobs WHERE 1;
DELETE from import_datas WHERE 1;
DELETE from statuses where created_at < "2022-12-01 22:15:39";
DELETE from media where deleted_at >= "2023-07-28 14:39:05";
File System Cleanup
Run these commands to remove the imported files and trigger the cleanup job:
compose exec -u "www-data" application rm -rv "/var/www/storage/app/imports/1"
compose exec -u "www-data" application php artisan schedule:run
Full Cleanup (Reset)
For a hard reset, which will delete all data and stop all services, use the following commands:
compose down
container volume rm pixelfed_application_data pixelfed_database pixelfed_redis
Update Procedure
To update your Pixelfed instance, navigate to the directory where your compose.yml file is located and run these commands:
cd {{ DIR_COMPOSITIONS }}pixelfed/ &&
compose down &&
container network prune -f &&
compose pull &&
compose build &&
compose -p pixelfed up -d --force-recreate
Inspecting the Services
To see the status of all services or follow the logs, use these commands:
compose ps -a
compose logs -f
Debug
To debug the system set APP_DEBUG to true, like descriped here.
nano config/app.php
php artisan cache:clear
php artisan route:cache
php artisan view:clear
php artisan config:cache
Modifying files
apt update && apt upgrade && apt install nano