Skip to content

kernelschmelze/inbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Inbox

Inbox is a simple upload server with Pushover notification for messages or small files.

echo "Hallo Freund" | \
  curl -F file=@- -F "from=Kay" -F "subject=re: inbox" http://localhost:25478/inbox

Persist upload to disk.

./data/f6ab2023-c582-4939-ba77-d758e3b85aee

{
  "time":"2022-05-21T18:33:51.562755+02:00",
  "id":"f6ab2023-c582-4939-ba77-d758e3b85aee",
  "from":"Kay",
  "subject":"re: inbox",
  "payload":"SGFsbG8gRnJldW5kCg=="
}

With Pushover notification.

Use case

Upload a file

curl -F "[email protected]" -F "from=Kay" -F "subject=file upload" https://127.0.0.1:12345/inbox

Upload encrypted message

I prefer age instead of pgp.

echo "Hallo Freund" | \
  age -r age1tjup7hvt35ldu3n98kzfl8ckl6dm43s4wnr02vrx7vvw27njhv4qfgdwym -a -o - | \
  curl -F file=@- -F "from=Kay" -F "subject=encrypted message" http://localhost:25478/inbox

Install

git clone https://github.com/kernelschmelze/inbox.git
cd inbox
go build

Usage

./inbox -f inbox.toml

Config

inbox.toml

# 25478
# :25478
# http://127.0.0.1:25478
# https://127.0.0.1:25478
# default :25478

listen = ":25478"

# tls crt and key file
# default empty

crt = "srv.crt"
key = "srv.key"

# simple json store
# default path ./data
# default days 0, no housekeeping

[jsonstore]
path = "./data"
days = 30

# pushover config

[pushover]
  app = "API Token"
  user = "Your User Key"
  

Uberspace setup

If you use uberspace as hoster, then here is the setup.

About

simple upload server with pushover notification

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages