computer-playbook/roles/docker-pixelfed/README.md

146 lines
5.6 KiB
Markdown
Raw Normal View History

# Pixelfed Docker Server Role
2022-12-05 09:18:52 +01:00
2023-12-02 21:39:50 +01:00
This README details the steps to manage your Pixelfed instance running in a Docker container. This setup is part of the docker-pixelfed role within Kevin Veen-Birkenbach's cymais located at [this GitHub repository](https://github.com/kevinveenbirkenbach/cymais/tree/master/roles/docker-pixelfed).
## Accessing Services
### Application Access
To gain shell access to the application container, run the following command:
2023-06-27 14:36:07 +02:00
```bash
2023-06-29 14:49:21 +02:00
docker-compose exec -it application bash
```
### Database Access
To access the MariaDB instance in the database container, run the following command:
2023-06-29 14:49:21 +02:00
```bash
docker-compose exec -it database mariadb -u pixelfed -p
```
2023-12-09 14:31:01 +01:00
### 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 docker-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:
```bash
docker-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:**
```bash
php artisan user:create
```
This command will prompt you to enter the user's details like username, email, and password.
- **List Users:**
```bash
php artisan user:list
```
This command displays a list of all users.
- **Delete a User:**
```bash
php artisan user:delete {username}
```
Replace `{username}` with the actual username of the user you wish to delete.
- **Reset Password:**
```bash
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 `docker-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:
2023-06-29 14:49:21 +02:00
```bash
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:
2023-06-29 14:49:21 +02:00
```bash
docker-compose exec -u "www-data" application rm -rv "/var/www/storage/app/imports/1"
docker-compose exec -u "www-data" application php artisan schedule:run
2023-06-27 14:36:07 +02:00
```
## Full Cleanup (Reset)
For a hard reset, which will delete all data and stop all services, use the following commands:
```bash
2023-04-19 00:03:13 +02:00
docker-compose down
2023-12-26 16:40:19 +01:00
docker volume rm pixelfed_application_data pixelfed_database pixelfed_redis
```
2022-11-16 11:17:37 +01:00
## Update Procedure
To update your Pixelfed instance, navigate to the directory where your `docker-compose.yml` file is located and run these commands:
2023-02-22 00:51:53 +01:00
```bash
2023-12-07 16:56:43 +01:00
cd {{path_docker_compose_instances}}pixelfed/ &&
2023-04-19 00:03:13 +02:00
docker-compose down &&
2023-03-27 13:17:40 +02:00
docker network prune -f &&
2023-04-19 00:03:13 +02:00
docker-compose pull &&
docker-compose build &&
docker-compose -p pixelfed up -d --force-recreate
2023-02-22 00:51:53 +01:00
```
## Inspecting the Services
2023-02-22 00:51:53 +01:00
To see the status of all services or follow the logs, use these commands:
2023-02-22 00:51:53 +01:00
```bash
2023-04-19 00:03:13 +02:00
docker-compose ps -a
docker-compose logs -f
2023-02-22 00:51:53 +01:00
```
2023-08-26 09:51:47 +02:00
## Debug
To debug the system set APP_DEBUG to true, like descriped [here](https://docs.pixelfed.org/technical-documentation/config/).
```bash
nano config/app.php
php artisan cache:clear
php artisan route:cache
php artisan view:clear
php artisan config:cache
```
## Modifying files
```bash
apt update && apt upgrade && apt install nano
```
## Further Reading
For additional information, refer to these resources:
- [Docker image on Docker Hub](https://hub.docker.com/r/zknt/pixelfed)
- [Blog Post about running Pixelfed in Docker](https://blog.pixelfed.de/2020/05/29/pixelfed-in-docker/)
2023-12-09 14:31:01 +01:00
---
Author: Kevin Veen-Birkenbach, [https://www.veen.world](https://www.veen.world), [kevin@veen.world](mailto:kevin@veen.world)
2023-12-09 14:31:01 +01:00
This README was optimized with the help of OpenAI's ChatGPT. You can view the conversation here:
- https://chat.openai.com/share/3daea33f-2e30-46e9-a709-a9c93e823ed9
- https://chat.openai.com/share/17f4cf36-feb7-4e7d-bb61-2732475f8a37