3.1 KiB
Pinnwand
Pinnwand is a straightforward pastebin service designed for simplicity and ease of use. It provides a clean web interface to share and manage text snippets, code, or notes. It supports features like syntax highlighting, expiration times, and revocation.
Pinnwand Installer Script
The Pinnwand installer script is a Bash script designed to automate the installation, upgrade, and setup of Pinnwand on a Linux system. It sets up and installs Pinnwand into a Python virtual environment, keeping it separate from the base system.
Prerequisites
- Python 3.8 or higher with
pip
- Git installed on the system.
Features
- Automated Installation: The script can install Pinnwand by cloning its repository and setting up a virtual environment.
- Upgrade Support: It can update Pinnwand to the latest version, a specified Git reference or main development branch.
- Custom Source Testing: A
USE_LOCAL_SRC
option allows using manually downloaded sources and avoids thegit
dependency.
Usage
- Clone or download the script.
- Set the username, install path and source path in the script.
- Run the script as the
pinnwand
user:sudo -u pinnwand-user ./pinnwand-installer.sh
Simply re-run the script to upgrade an existing installation.
Running pinnwand
Create a config.toml
with desired configuration options.
An example config file is available in the source tree under etc/pinnwand-toml-example
.
Manually
Specify the configuring file and the TCP/IP listening port on the command line.
sudo -u pinnwand-user path/to/pinnwand/venv/bin/pinnwand --configuration-path config.toml http --port 1234
OpenRC init.d script
The provided init scripts help you run pinnwand as a service on a OpenRC system such as Gentoo and Alpine Linux.
- Cooy
pinnwand.initd
to/etc/init.d/pinnwand
- Cooy
pinnwand.confd
to/etc/conf.d/pinnwand
- Set the correct user and path in
/etc/conf.d/pinnwand
- Run
rc-update add pinnwand
to enable autostart on boot. - Run
rc-service pinnwand start
to start pinnwand now.
gist.sh - paste from command line
Sometimes you nay need to paste a log file, a snippet or code or a kernel log to a pastebin service.
The siplest way may be to use curl
, as described on https://pinnwand.readthedocs.io/en/latest/tricks.html
cat file | curl -X POST http://localhost:8000/curl -F 'raw=<-'
I wanted a little more control over language (lexer) selection and be able to upload several files in one go, so I expanded on the curl script and ended up with gist.sh
.
Usage: gist.sh [options] [file1 file2 ...]
Options:
-e, --expiry <expiry> Set the expiry time for the paste (e.g., 1day, 1hour).
Default is '1day' if not specified.
-l, --lexer <lexer> Specify the lexer to use for syntax highlighting.
--lexers List all available lexers in 'name : description' format.
-h, --help Show this help message and exit.
Examples
gist.sh -e 1hour -l python file1 file2
gist.sh --lexers
dmesg | gist.sh -l kmsg