Cómo configurar Mastodon usando Docker Compose

Requisitos previos#

  • Docker y Docker Compose instalados
  • Nombre de dominio que apunta a su servidor

1. Crear directorio de proyectos#

mkdir mastodon
cd mastodon

2. Crear un archivo de redacción Docker#

Cree un archivo docker-compose.yml:

version: ''3''
services:
  db:
    restart: always
    image: postgres:14-alpine
    shm_size: 256mb
    networks:
      - internal_network
    healthcheck:
      test: [''CMD'', ''pg_isready'', ''-U'', ''postgres'']
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_HOST_AUTH_METHOD=trust

  redis:
    restart: always
    image: redis:7-alpine
    networks:
      - internal_network
    healthcheck:
      test: [''CMD'', ''redis-cli'', ''ping'']
    volumes:
      - redis_data:/data

  web:
    restart: always
    image: tootsuite/mastodon:latest
    networks:
      - external_network
      - internal_network
    healthcheck:
      test: [''CMD-SHELL'', ''wget -q --spider http://localhost:3000/health || exit 1'']
      timeout: 10s
    depends_on:
      - db
      - redis
    environment:
      - DB_HOST=db
      - DB_USER=postgres
      - DB_NAME=postgres
      - DB_PASS=
      - REDIS_HOST=redis
      - LOCAL_DOMAIN=your-domain.com
      - SINGLE_USER_MODE=false
      - SMTP_SERVER=smtp.mailgun.org
      - SMTP_PORT=587
      - SMTP_LOGIN=your-smtp-login
      - SMTP_PASSWORD=your-smtp-password
      - SMTP_FROM_ADDRESS=notifications@your-domain.com
    volumes:
      - ./public/system:/mastodon/public/system
    ports:
      - "3000:3000"
    command: bash -c "rm -f /mastodon/tmp/pids/server.pid && bundle exec rails s -p 3000"

  streaming:
    restart: always
    image: tootsuite/mastodon:latest
    networks:
      - external_network
      - internal_network
    depends_on:
      - db
      - redis
    environment:
      - DB_HOST=db
      - DB_USER=postgres
      - DB_NAME=postgres
      - DB_PASS=
      - REDIS_HOST=redis
      - LOCAL_DOMAIN=your-domain.com
    volumes:
      - ./public/system:/mastodon/public/system
    ports:
      - "4000:4000'
    command: node ./streaming

  sidekiq:
    restart: always
    image: tootsuite/mastodon:latest
    networks:
      - internal_network
    depends_on:
      - db
      - redis
    environment:
      - DB_HOST=db
      - DB_USER=postgres
      - DB_NAME=postgres
      - DB_PASS=
      - REDIS_HOST=redis
      - LOCAL_DOMAIN=your-domain.com
    volumes:
      - ./public/system:/mastodon/public/system
    command: bundle exec sidekiq

networks:
  external_network:
  internal_network:
    internal: true

volumes:
  postgres_data:
  redis_data:

3. Crear archivo de entorno#

Cree un archivo .env.production con su configuración:

Cómo probar baterías AA y AAA usando un multímetro

  1. Gire el dial a una configuración de voltaje más alta - Pruebe la configuración “200” en la sección de voltaje CC (V⎓). Esto manejará voltajes de hasta 200 V.

  2. Comprueba tus conexiones - Asegúrate de:

    • La sonda negra está firmemente en el puerto “COM”
    • La sonda roja está firmemente en el puerto “VΩmA'
    • Estás haciendo buen contacto con los terminales de la batería.
  3. Verifique la orientación de la batería - Asegúrese de tocar:

Comparación de navegadores Iceraven y Ironfox

Iceraven y IronFox son navegadores de código abierto para Android y cada uno ofrece funciones de privacidad y personalización, pero con diferentes énfasis y audiencias de usuarios.

Funciones principales#

CaracterísticaCuervo heladoZorro de Hierro
Privacidad & TelemetríaTelemetría reducida, personalizable123Privacidad fuertemente reforzada, toda la telemetría eliminada456
Complementos/ExtensionesAmplio soporte, lista más grande que la de Firefox178Admite extensiones de Firefox para Android6
PersonalizaciónAcerca de:config, más opciones similares a las de un escritorio127Valores predeterminados de privacidad avanzados, interfaz simplificada456
Velocidad y rendimientoComparable a Brave/Chrome; optimizado para recursos89Ligero, ligeramente más rápido que el Firefox original6
Enfoque principalPersonalización, extensión y funciones de usuario avanzado12Privacidad, desinflada y anti-seguimiento465
ActualizacionesImpulsado por la comunidad, más lento pero constante210Activo, receptivo a los problemas de los usuarios54
Canales OficialesLanzamientos de APK de Github, no en Play Store128F-Droid/Accrescent, Github, no en Play Store46
  • Construido sobre Firefox estable para Android, con un enfoque en más disponibilidad de complementos y opciones de configuración como about:config1112.
  • Atrae a los usuarios que desean replicar la experiencia de personalización y complementos de Firefox para escritorio en dispositivos móviles111.
  • Las versiones y actualizaciones se mantienen a través de Github y no se distribuyen a través de Play Store128.
  • Algunos comentarios señalan la falta de garantías o garantías de seguridad; Lo utilizan mejor usuarios avanzados familiarizados con las partes internas del navegador12.
  • Derivado de Mull (en sí mismo una bifurcación de Firefox centrada en la privacidad), con seguimiento agresivo y eliminación de telemetría456.
  • Prioriza la privacidad del usuario, bloquea la telemetría de forma predeterminada y viene con configuraciones estrictas de protección de seguimiento46.
  • Mantiene funciones como Firefox Sync; deshabilita o restringe funciones que filtran datos (como WebGL, a menos que se habilite manualmente)46.
  • Distribuido a través de tiendas de aplicaciones alternativas como F-Droid, Accrescent y Github; no disponible en Play Store46.
  • Algunas funciones de privacidad avanzadas pueden provocar problemas de compatibilidad con determinados sitios web, especialmente aquellos que dependen de funciones que IronFox desactiva de forma predeterminada4.

Resumen#

Iceraven es ideal para aquellos que desean un navegador para “usuarios avanzados” con una profunda personalización y una amplia biblioteca de complementos, lo que lo hace similar en espíritu al Firefox de escritorio1117. IronFox es mejor para los usuarios que dan prioridad a la privacidad y buscan un navegador basado en Firefox que elimine automáticamente la telemetría y las funciones innecesarias para una experiencia ligera y segura54612. Ambos ofrecen más control y privacidad que el Firefox estándar para Android, pero Iceraven se centra en la flexibilidad mientras que IronFox se centra en reforzar la privacidad. 1314151617181920

Lista de algunos servicios autohospedados que puedes configurar en tu homelab

Comunicación y colaboración#

  1. Matrix.org: una plataforma de mensajería descentralizada.
  2. Zulip: una aplicación de chat grupal de código abierto.
  3. Nextcloud: un paquete de colaboración y almacenamiento en la nube.
  4. ownCloud: un servidor compartido y de sincronización de archivos autohospedado.
  5. Mattermost: un centro de colaboración en equipo de código abierto.
  6. Freenode - Red Internet Relay Chat (IRC) para proyectos de código abierto.
  7. GitLab: administrador de repositorios Git basado en web con funciones de canalización de CI/CD.
  8. GitPod: una idea de código que activa entornos de desarrollo con un solo clic.

Redes sociales y foros#

  1. Mastodon: una red social descentralizada basada en el software de plataforma de microblogging GNU social/G+/Twitter.
  2. Friendica: una plataforma de comunicación distribuida y redes sociales de código abierto.
  3. Flarum - Un software de foro que se centra en la simplicidad, la velocidad, la elegancia y la usabilidad.
  4. Discurso: una plataforma de debate moderna, abierta y versátil.
  5. phpBB: un popular paquete de foro de código abierto.
  6. Fluentd: una herramienta de recopilación de datos para recopilar eventos de varias fuentes de datos a una variedad de destinos.
  7. Logstash: un canal de procesamiento de datos de código abierto que puede recopilar datos de diversas fuentes y canalizarlos en un formato unificado.
  8. Kibana: una herramienta de exploración y visualización de datos de código abierto construida sobre Elasticsearch.

Herramientas para desarrolladores#

  1. Docker: una plataforma para desarrollar, enviar y ejecutar aplicaciones.
  2. Jenkins: un servidor de integración continua extensible.
  3. GitLab CI/CD - Integración continua/implementación continua.
  4. Travis CI: un servicio de integración continua basado en la nube para proyectos de GitHub y Bitbucket.
  5. JIRA: software de gestión de proyectos que incluye scrum, planificación de sprints, priorización de trabajos pendientes y funciones de seguimiento de lanzamientos.
  6. Redmine: una aplicación web gratuita de gestión de proyectos.
  7. Tuleap: una herramienta integrada de gestión de proyectos que combina las mejores prácticas en gestión de proyectos de TI con herramientas modernas y de código abierto.

Correo electrónico y calendario#

  1. Roundcube: un cliente de correo basado en web.
  2. Marco de aplicaciones web Horde Groupware: un paquete de software colaborativo.
  3. Zimbra: un sistema de correo electrónico, calendario y colaboración.
  4. Sogo: una combinación de un componente de servidor web para acceso a iCalendar, vCard y SMTP y bibliotecas de cliente para varios clientes IMAP y CalDAV.
  5. Navegador de privacidad DuckDuckGo: un navegador orientado a la privacidad basado en Firefox.

Gestión de datos#

  1. Elasticsearch: un motor de análisis y búsqueda RESTful distribuido.
  2. Kibana: para visualizar datos de Elasticsearch en tiempo real.
  3. PostgreSQL: un potente sistema de base de datos relacional de objetos de código abierto.
  4. MongoDB: una base de datos de código abierto orientada a documentos.
  5. Redis: un almacén de valores clave en memoria que se utiliza como base de datos, caché y intermediario de mensajes.
  6. Memcached: un sistema de almacenamiento en caché de memoria distribuida de propósito general.
  7. Neo4j: una base de datos gráfica que permite consultas flexibles utilizando el lenguaje de consulta Cypher.
  8. InfluxDB: una base de datos de series temporales de código abierto.

Oficina y productividad#

  1. LibreOffice: una suite ofimática de código abierto.
  2. OnlyOffice: una plataforma que combina editores de texto en línea, gestión de documentos y proyectos y almacenamiento de archivos en una única solución.
  3. Apache OpenOffice: otra suite ofimática gratuita y de código abierto.
  4. Zimbra Collaboration Suite: un servidor de correo electrónico y calendario con un cliente de escritorio opcional.

Infraestructura y monitoreo#

  1. Nagios: un sistema de monitoreo para sistemas, redes e infraestructura.
  2. Zabbix: una solución de monitoreo distribuido de código abierto de clase empresarial.
  3. Prometheus: un sistema de seguimiento y una base de datos de series temporales.
  4. InfluxDB: para almacenar y analizar métricas.
  5. Kubernetes: un sistema de orquestación de contenedores de código abierto para automatizar contenedores informáticos.
  6. OpenVPN: una solución VPN sólida y altamente configurable.
  7. NGINX: un servidor web de alto rendimiento y un servidor proxy inverso.
  8. Traefik: un moderno proxy inverso HTTP y equilibrador de carga.
  9. HAProxy: una solución de equilibrio de carga confiable, eficiente y flexible.

Multimedia y entretenimiento#

  1. Plex: una plataforma de transmisión y administración de medios cliente-servidor.
  2. Emby: un servidor y reproductor multimedia extensible con ricas capacidades de metadatos.
  3. Radarr: una aplicación complementaria de Sonarr para descargar nuevos episodios de programas de televisión.
  4. Sonarr: un descargador de programas de televisión basado en índices que utiliza archivos NZB.
  5. Jackett: un motor de indexación que busca en muchos sitios web diferentes.
  6. Deluge: un cliente BitTorrent ligero y rico en funciones.
  7. Rutorrent - Un cliente bittorrent fácil de usar con muchas funciones.
  8. Lidarr: un indexador de música automatizado que puede descargar automáticamente tus álbumes favoritos.

Comercio electrónico#

  1. Magento Open Source: una plataforma de comercio electrónico flexible para empresas de todos los tamaños.
  2. PrestaShop: una solución de comercio electrónico de código abierto.
  3. OpenCart: un sistema de carrito de compras gratuito y de código abierto.
  4. WooCommerce: un complemento de WordPress que convierte su sitio en una tienda en línea completa.

Seguridad#

  1. fail2ban: una herramienta de seguridad de red que analiza los archivos de registro en busca de intentos fallidos de inicio de sesión y luego prohíbe las direcciones IP de aquellos que logran múltiples intentos fallidos de inicio de sesión.
  2. Criptografía: herramientas y bibliotecas para cifrado y descifrado.
  3. OSSEC: un potente sistema de detección de intrusiones basado en host de código abierto.
  4. Pulse Secure Virtual Desktop: una plataforma de borde de servicio de acceso seguro (SASE) que permite a las organizaciones ofrecer seguridad de acceso a la red y aplicaciones integradas y centradas en la nube.
  5. ClamAV: un motor antivirus de código abierto para detectar troyanos, virus, malware y otras amenazas maliciosas.

Nube y almacenamiento#

  1. OpenStack: un sistema operativo en la nube para ofrecer diversos servicios en la nube.
  2. Cloudflare: una empresa de seguridad y rendimiento de Internet que proporciona una red de servidores distribuidos para proteger los sitios web de los ataques cibernéticos.
  3. Nextcloud: ya figura en la lista anterior, pero vale la pena mencionarlo nuevamente porque también es un servicio de nube completo.
  4. OpenVPN: para crear un acceso remoto seguro a su laboratorio doméstico.

Servidores web#

  1. Servidor HTTP Apache: el servidor web más utilizado del mundo.
  2. NGINX: un servidor proxy inverso y HTTP de alto rendimiento.
  3. Caddy: un servidor web automatizado con HTTPS automático.

Herramientas e IDE para desarrolladores#

  1. Visual Studio Code: un editor de código redefinido y optimizado para crear y depurar aplicaciones web y en la nube modernas.
  2. Eclipse: un entorno de desarrollo integrado (IDE) de código abierto.
  3. IntelliJ IDEA: un potente IDE para lenguajes basados ​​en JVM como Java, Kotlin, Scala y Android.

Recursos educativos y de aprendizaje#

  1. Khan Academy: ofrece educación en línea gratuita para una variedad de temas.
  2. Moodle: un sistema de gestión de cursos de código abierto que se puede utilizar para crear un entorno de aprendizaje en línea.
  3. Canvas: un sistema de gestión de aprendizaje (LMS) basado en la nube.
  4. edX: una plataforma de aprendizaje en línea fundada por la Universidad de Harvard y el Instituto de Tecnología de Massachusetts.

Servidores de juegos#

  1. Servidor Minecraft: para ejecutar tu propio servidor Minecraft.
  2. SteamCMD: la herramienta de entrega de contenido de Steam para ayudar a administrar las actualizaciones del juego en servidores dedicados.
  3. ARK: Survival Evolved Server: para alojar un servidor de juegos multijugador de supervivencia para ARK.

Almacenamiento de archivos y copia de seguridad#

  1. BorgBackup: un programa de copia de seguridad con deduplicación que admite almacenamiento de archivos y bloques.
  2. Bacula: un sistema de protección, restauración y recuperación de datos de nivel empresarial de código abierto.
  3. Rclone: una herramienta para sincronizar directorios entre proveedores de almacenamiento en la nube.

Transmisión de medios y DVR#

  1. Emby: para transmisión de medios centralizada dentro de su red.
  2. MediaPortal: un software de centro multimedia gratuito y de código abierto para Microsoft Windows.
  3. DVR-PC: una solución completa de grabación, transmisión y visualización de TV en vivo que se ejecuta en PC con Linux (y Windows).

Otras herramientas#

  1. Mattermost: herramienta de comunicación en equipo, que también tiene un componente de suite de colaboración.
  2. GitPod: un servidor de códigos basado en web con herramientas preconfiguradas para entornos de desarrollo completos.
  3. GitBucket: un servidor Git compatible con GitHub fácilmente instalable y escrito en Scala.
  4. Zabbix: para monitorear su infraestructura y aplicaciones.

Cómo reducir el tamaño de un archivo pdf en Linux CLI

  1. Instalar Ghostscript: Si aún no está instalado, puedes instalar Ghostscript usando el administrador de paquetes de tu distribución. Para sistemas basados en Debian como Ubuntu, utilice:

    sudo apt-get update
    sudo apt-get install ghostscript

    Para sistemas basados en Red Hat como Fedora, utilice:

    sudo dnf install ghostscript
  2. Comprime el PDF: una vez instalado Ghostscript, puedes comprimir tu archivo PDF usando el siguiente comando:

    gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

    En este comando:

Apagar Proxmox VM usando CLI

Si está buscando apagar una máquina virtual que se ejecuta en un entorno virtual Proxmox (PVE), puede usar la interfaz de línea de comandos (CLI) de Proxmox para realizar esta tarea de manera bastante efectiva. El comando para apagar una VM en Proxmox es qm shutdown, seguido del ID de la máquina virtual que desea apagar. He aquí cómo hacerlo:

  1. Acceda al servidor: Primero, inicie sesión en su servidor Proxmox a través de SSH.

Dominar Ansible: un tutorial paso a paso

Nos sumergiremos directamente en los conceptos y componentes básicos que le ayudarán a dominar Ansible. Este tutorial asume que ya ha instalado Ansible en su sistema y tiene un conocimiento básico de qué es Ansible.

Configuración del entorno#

Generación de claves SSH#

Si aún no lo ha hecho, genere un par de claves SSH en su nodo de control de Ansible.

ssh-keygen -t rsa

Distribución de claves SSH#

Copie la clave pública SSH en todos sus nodos de destino.

Cómo contar el número de palabras en un archivo pdf desde Linux cli

Usando pdftotext:#

  1. Instalación:

    • Si no está instalado, necesitarás instalar el paquete poppler-utils que incluye pdftotext.
    sudo apt install poppler-utils

    o

    yum install poppler-utils

    dependiendo de su distribución.

  2. Uso:

    • Una vez instalado, puedes convertir un PDF a texto y luego contar las palabras de la siguiente manera:
    pdftotext input.pdf - | wc -w

    Aquí, input.pdf es su archivo PDF de origen y wc -w cuenta el número de palabras. El - en pdftotext especifica que la salida debe enviarse a la salida estándar, que luego se canaliza a wc.

Cómo instalar el cliente Postgresql usando Homebrew

Psql es una interfaz de línea de comandos para interactuar con PostgreSQL, un sistema de base de datos relacional potente y de código abierto. Brew es un administrador de paquetes para macOS que facilita la instalación y administración de software. Estos son los pasos para instalar psql con brew:

  • Primero, instale el administrador de paquetes de preparación si aún no lo tiene. Puedes hacer esto ejecutando el siguiente comando en tu terminal:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)'
  • En segundo lugar, actualice Brew ejecutando los siguientes comandos:
brew doctor
brew update
  • En tercer lugar, instale libpq ejecutando el comando:
brew install libpq

Libpq es una biblioteca que contiene psql y otras utilidades de cliente PostgreSQL.

Cómo evitar que se programen otros pods en tu nodo en Kubernetes

Kubernetes es una poderosa plataforma para administrar aplicaciones en contenedores en un grupo de nodos. Sin embargo, a veces es posible que desee tener más control sobre qué pods están programados en qué nodos, por diversos motivos, como el rendimiento, la seguridad o el costo.

¿Qué son las contaminaciones y las tolerancias?#

Las manchas y las tolerancias son una característica de Kubernetes que le permite marcar nodos con ciertos atributos o condiciones y luego especificar qué pods pueden o no programarse en esos nodos en función de esos atributos o condiciones. Las contaminaciones se aplican a los nodos y las tolerancias se aplican a las vainas.