Hastebin

From HackerNet
Revision as of 19:29, 28 November 2017 by Sparco (talk | contribs) (→‎Lightweight client)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Hastebin används för att tex dela kod eller nån log fil med någon. Det funkar på samma sätt som Pastebin. Hastebin är väldigt enkelt att använda och är stilrent. En fördel med hastebin är att dom har klienter som man kan köra i sitt skal så man kan tex köra cat på en fil och output är hastebin.

Hackernets egna hastebin server

Installation

Clona hastebins git repo,

git clone https://github.com/seejohnrun/haste-server

Kör sedan. Vill du ändra nån inställning i config.js gör det före detta steget.

npm install
npm start

Konfiguration

Det finns 3 olika sätt att lagra sina paste på. Memcache, redis eller på fil.

Memcache

Förutsätter att du redan har memcache server installerat på samma eller en annan server.

Du behöver också modulen för memcache.

npm install memcache

Under storage i config.js ändra till.

 "storage": {
   "type": "memcached",
   "host": "127.0.0.1",
   "port": 11211,
   "expire": 2592000
 },

expire säger hur många sekunder en paste ska finnas kvar sedan den senast öppnades.

Redis

Förutsätter också att du har en redis server och du behöver modulen för redis.

npm install redis

Under storage i config.js ändra till.

 "storage": {
   "type": "redis",
   "host": "0.0.0.0",
   "port": 6379,
   "db": 2,
   "expire": 2592000
 },

File

Under storage i config.js ändra till.

 "storage": {
   "type": "file",
   "path": "./data",
   "expire": 2592000
 },

När du är klar med config.js kör sedan.

npm install
npm start

Tjänsten går nu att nå på http://<IP>:7777

Reverse proxy

Låt en reverse proxy dela ut tjänsten tex Apache.

<VirtualHost *:80>
    ServerAdmin root@hackernet.se
    ServerName paste.hackernet.se

    <IfModule mod_proxy.c>
        ProxyVia On
        ProxyRequests Off
        ProxyPass / http://127.0.0.1:7777/
        ProxyPassReverse / http://127.0.0.1:7777/
        ProxyPreserveHost on
        <Proxy *>
            AllowOverride All
            Order allow,deny
            allow from all
        </Proxy>
    </IfModule>

        ErrorLog ${APACHE_LOG_DIR}/hastebin.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined


</VirtualHost>

Se till att modulerna proxy och proxy_http är igång.

Systemd service

Under /etc/systemd/system skapa filen haste.service med texten. Anpassa /opt/haste-server efter vart du installerat det.

[Service]
ExecStart=/usr/bin/node /opt/haste-server/server.js
Restart=always
StandardOutput=syslog
SyslogIdentifier=hastebin
User=root
WorkingDirectory=/opt/haste-server

[Install]
WantedBy=multi-user.target

Kör sedan dessa 2 kommandona för att skapa en symlänk och starta hastebin.

systemctl enable /etc/systemd/system/haste.service
systemctl start haste.service


Klient

Dom har flera klienter för linux och för windows.

Lightweight client

Skriv denna raden i ditt skal för att klienten ska fungera.

haste() { a=$(cat); curl -X POST -s -d "$a" https://paste.hackernet.se/documents | awk -F '"' '{print "https://paste.hackernet.se/"$4}'; }

För att använda klienten skriv,

cat testfil.txt | haste