Ejecute su propio Pastebin con Stikked
Si es un desarrollador de cualquier tipo, probablemente haya oído hablar de Pastebin.com, la aplicación web más utilizada para pegar y compartir fragmentos de texto. Pastebin.com es excelente, pero no es la única herramienta de pastebin que existe.
De hecho, cada vez es más común que los sitios web alojen sus propios pastebins. Te da más libertad. Hay muchas implementaciones de pastebin de código abierto, y Stikked es una de las más útiles con sus funciones avanzadas y su interfaz de usuario simplificada.
Stikked está construido con PHP y jQuery y utiliza el marco CodeIgniter.
Instalación de Stikked
Stikked requiere que su servidor esté funcionando:
- Git
- Nginx
- Docker y composición de Docker
- Para descargar la última versión de Stikked, visite la página de Stikked GitHub o vaya a su línea de comando y ejecute:
git clone https://github.com/claudehohl/Stikked.git
- Ve a la carpeta Stikked:
cd. /Stikked
- Abra el archivo «docker-compose.yml» que se encuentra dentro usando su editor de texto favorito.
- Desplácese a la variable «puertos:» en la categoría «servicios:» y cambie su valor a lo siguiente:
ports:
- 8080:80/tcp
- Desplácese hasta la categoría «mysql:» y reemplace la subcategoría «comando:» con el siguiente código:
command: mysqld
- Abra el archivo de configuración principal de Stikked:
nano ~/Stikked/docker/stikked.php
- Vaya a la línea que contiene la variable
$config['base_url']
y reemplace «localhost» con el nombre de dominio completo de su sistema. Guardar y salir del archivo.
- Abra el archivo “nginx.conf” dentro del contenedor Stikked:
nano ~/Stikked/docker/nginx.conf
- Elimine las tres líneas debajo de «Solo se permiten solicitudes a nuestro Host».
- Cree su contenedor Docker ejecutando el siguiente comando:
docker compose up -d
Creación de un proxy inverso SSL Nginx
En este punto, ahora tiene una instalación de Stikked ejecutándose en el puerto 8080. Si bien puede usar esto tal como está, el contenedor básico de Stikked puede ser inseguro ya que no cifra su conexión de manera predeterminada. Para solucionar esto, debe crear un proxy inverso que pueda escuchar las conexiones entrantes que luego cifra a través de SSL.
- Cree un nuevo archivo de configuración del sitio en «/etc/nginx/sites-disponible/»
sudo nano /etc/nginx/sites-available/stikked
- Pegue el siguiente código dentro de su nuevo archivo de sitio. Este es un proxy inverso simple que escucha las conexiones no cifradas entrantes en el puerto 80 y redirige todas las consultas al puerto 8080.
server {
listen 80;
listen [::]:80;
root /var/www/html;
server_name my-stikked-installation.com;
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://localhost:8080;
}}
- Cree un enlace simbólico para el archivo de su sitio dentro de “/etc/nginx/sites-enabled” y elimine el archivo de sitio predeterminado que contiene:
sudo ln -s /etc/nginx/sites-available/stikked /etc/nginx/sites-enabled/
- Pruebe su configuración de Nginx en busca de errores, luego habilite el servicio Nginx a través de
systemctl
:
sudo nginx -tsudo systemctl reload nginx.service
Instalación de un certificado SSL
Con su proxy inverso en funcionamiento, ahora puede solicitar un certificado SSL para su instancia de Stikked. La opción más sencilla es instalar el paquete certbot snap de Electronic Frontier Foundation.
- Asegúrese de que sus archivos binarios básicos estén actualizados y en ejecución:
sudo snap install core
sudo snap refresh core
- Instale certbot usando el complemento binario de su máquina Stikked:
sudo snap install certbot --classic
- Pruebe si el programa funciona correctamente vinculando su dirección de correo electrónico a certbot:
sudo certbot register --agree-tos -m ramces@email.invalid
- Vuelva a ejecutar certbot para crear un certificado SSL para su instancia de Stikked:
sudo certbot --nginx -d my-stikked-installation.com
- Abra un navegador web y verifique si su instancia de Stikked se ejecuta bajo SSL.
Dar estilo a su instalación Stikked
Todos los datos de estilo existen en el directorio llamado «temas» en el directorio «htdocs» de su repositorio de Git. Para divertirse, eche un vistazo dentro del subdirectorio para ver algunas opciones interesantes.
- Ingrese al repositorio Stikked Git y navegue hasta el directorio «htdocs/themes».
cd ~/Stikked/htdocs/themes
- La mayoría de las opciones de estilo se realizan dentro de cada carpeta de temas. Por ejemplo, el tema geocities transforma su Stikked para que se vea como un sitio web en la década de 1990.
- Para modificar la apariencia de su instancia, primero debe cerrar su contenedor Docker:
docker compose down
- Abra el archivo de configuración principal de su instancia con su editor de texto favorito:
nano ~/Stikked/docker/stikked.php
- Desplácese hacia abajo hasta la línea que contiene la
$config['theme']
variable y cambie su valor a «cleanwhite».
- Guarde su archivo de configuración principal y vuelva a cargar su contenedor Docker:
docker compose up -d
- Abra un navegador web y cargue su nueva página web. Aquí está mi página «Crear» después de cargar el tema cleanwhite.
Características
Stikked tiene una serie de características interesantes que lo hacen destacar entre la multitud de otros scripts de pastebin.
En primer lugar, abarca toda la gama en lo que respecta al resaltado de sintaxis. Stikked admite una enorme lista de lenguajes de programación y secuencias de comandos, desde C hasta Bash. Independientemente de lo que esté codificando, su instalación de Stikked lo tiene cubierto.
El idioma de cada fragmento se muestra en una tabla en la página «Reciente»; si el cartel no especificó un idioma para pegar, entonces se etiqueta como «texto». La tabla también muestra el título, el nombre del cartel y la actualidad, junto con un icono de RSS. La fuente RSS se encuentra en your-stikked-installation.com/lists/rss.
La página de «Tendencias» es casi idéntica pero con la adición de una columna de «éxitos» y sin fuente RSS. Los hits parecen calcularse en función de las visitas de direcciones IP únicas.
Cuando crea un pegado, tiene la opción de establecer una fecha de vencimiento, crear una URL corta usando el servicio en bit.ly y/o hacer que la publicación sea privada. Tenga en cuenta que un pegado «privado» no es verdaderamente privado; cualquier usuario que tenga la URL de pegado puede verla, a menos que haya habilitado la autenticación LDAP; en ese caso, todos los usuarios registrados con la URL pueden verla. «Privado» solo significa que la publicación no aparecerá en las páginas Recientes o Tendencias.
Dejando a un lado la seguridad, Stikked proporciona algunas utilidades interesantes para ver una pasta. Estoy especialmente satisfecho con el código de inserción.
También puede responder a pegados y agregar sus propias ediciones desde un formulario debajo del pegado original. El único inconveniente de esto es que las respuestas no se vinculan con la publicación original; si su pastebin tiene muchas publicaciones diferentes y respuestas hechas en diferentes momentos, es fácil perder el rastro de su estructura. Solo puedo esperar que el desarrollador en algún momento introduzca respuestas en hilos.
Una última característica es el control de spam, al que Stikked se refiere como «spamadmin». Configúrelo ingresando las credenciales en “docker/stikked.php” en las líneas 79 y 80:
$config['spamadmin_user'] = 'stikked';
$config['spamadmin_pass'] = 'stikked';
Vaya a your-stikked-installation.com/spamadmin para iniciar sesión. Allí puede ver qué pegados provienen de qué direcciones IP, eliminar pegados y bloquear rangos de IP.
API
La API de Stikked le permite pegar desde clientes de pastebin. La URL de API para usar en su cliente es your-stikked-installation.com/api/create.
Un ejemplo básico es usar el comando cURL para cargar un archivo llamado «smalltalk.st», configurando el título, el nombre, la privacidad, el idioma y el tiempo de vencimiento en minutos:
curl -d title='cURL test' -d name='Ramces' -d private=1 -d lang=c -d expire=45 --data-urlencode text@count.c https://my-stikked-installation.com/api/create
Esto devolverá la URL de la pasta.
Si desea una manera fácil de recopilar y compartir fragmentos de texto en su propio sitio web, le recomiendo que pruebe Stikked.
En ese sentido, una forma de obtener rápidamente algunos fragmentos de texto para compartir es aprender un nuevo lenguaje de programación. Aprenda cómo puede escribir scripts de Bash consultando nuestra sencilla guía para principiantes . También puede ampliar este conocimiento leyendo nuestra inmersión profunda en las variables de Bash y sus usos .
Crédito de la imagen: Christopher Gower a través de Unsplash . Todas las alteraciones y capturas de pantalla por Ramces Red.
Deja una respuesta