Files
computer-playbook/roles/web-app-pixelfed/Administration.md
kevinveenbirkenbachandClaude Opus 4.7 79409ebf10 test(tooling): integrate markdownlint-cli2, ansible-lint, galaxy-importer + fix the resulting baseline
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>
2026-05-08 23:46:37 +02:00

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):

  1. Access the Application Container: First, gain shell access to the Pixelfed application container. Use the command provided in the README:

    compose exec -it application bash
    

    This command lets you access the bash shell inside the application Docker container where Pixelfed is running.

  2. Navigate to Pixelfed Directory: Once inside the container, navigate to the Pixelfed directory. This is typically the root directory where Pixelfed is installed.

  3. 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:create
      

      This command will prompt you to enter the user's details like username, email, and password.

    • List Users:

      php artisan user:list
      

      This 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.

  4. 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.

  5. 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.yml and 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