====== Plik ======
[[informatica:software:aplicaciones_web|Aplicación web]] para compartir ficheros. Hecho en [[informatica:programacion:go|Go]].
* [[https://github.com/root-gg/plik|Repositorio de código]]
Añadir alguna captura de pantalla de la aplicación
===== Características =====
* Cliente de línea de comandos potente
* Interfaz web fácil de usar
* Múltiples back-ends de datos: archivo, OpenStack Swift, S3, Google Cloud Storage
* Múltiples back-ends de metadatos: Sqlite3, PostgreSQL, MySQL
* OneShot: los archivos se destruyen después de la primera descarga
* Stream: los archivos se transmiten desde el cargador al descargador (no se almacena nada en el servidor)
* Posibilidad de eliminar los ficheros subidos en cualquier momento por parte de quien los subió.
* TTL: fecha de expiración personalizada
* Contraseña: protege la carga con inicio de sesión/contraseña (Auth Basic)
* Comentarios: agrega un mensaje personalizado (en formato Markdown)
* Autenticación de usuario: local / Google / OVH
* Restricción de carga: IP de origen / token
* CLI y UI de administrador
* Cifrado de lado servidor (con back-end de datos S3)
* Compilación multiarch e imágenes de docker
* Cargar con ShareX: integrado directamente en ShareX
===== Instalación =====
==== Docker ====
Ejemplo de ''docker-compose.yml'' para lanzarlo con [[informatica:sistemas_operativos:virtualizacion:docker:docker_compose|Docker Compose]]:
---
version: "2"
services:
plik:
image: rootgg/plik:latest
container_name: plik
volumes:
- /home/{user}/plik/plikd.cfg:/home/plik/server/plikd.cfg
- /home/{user}/plik/data:/data
ports:
- 8080:8080
restart: "unless-stopped"
El fichero ''plikd.cfg'' podemos descargarlo desde [[https://raw.githubusercontent.com/root-gg/plik/master/server/plikd.cfg|el repositorio oficial]]. Revisamos la siguiente parte:
DataBackend = "file"
[DataBackendConfig]
Directory = "/data/files" # <===
[MetadataBackendConfig]
Driver = "sqlite3"
ConnectionString = "/data/plik.db" # <===
Los ficheros y metadatos irían en un directorio llamado ''data''. Tanto el fichero ''plikd.cfg'' como el directorio ''data'' deben tener la misma propiedad que en Docker:
chown 1000:1000 data
chown 1000:1000 plikd.cfg
===== Configuración =====
==== Usuarios ====
Creación de un usuario local administrador:
./plikd --config plikd.cfg user create --login root --name Admin --admin
Se habrá creado un usuario ''root'' con el nombre ''Admin'' y el rol de administrador. Se mostrará por consola la contraseña de dicho usuario.
==== No permitir subidas anónimas ====
En el fichero ''plikd.cfg'':
FeatureAuthentication = "forced"
Tras relanzar el servidor, Plik solicitará identificarse para poder realizar subidas de ficheros.