npad

package module
v0.1.26 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 14, 2024 License: BSD-3-Clause Imports: 27 Imported by: 0

README

OVERVIEW

Go Reference Go Report Card Go Build

paepcke.de/npad

WebAPP to share, exchange and analyze secrets, keys, certificates and code in a secure way.

KEYPOINTS

  • Frontend: 100 % javascript free, small, fast
  • Backend: 100 % pure go code, no cgo, no db, minimal external dependencies, secure storage

Transport

  • No legacy TLS downgrade support
  • mutualTLS authentication (optional) removes large area of the golang application & tls stack attac surface

Storage

  • No disk access at all, everything is compressed and encrypted in-memory (ram)
  • No accesslogs, no db, total stateless server
  • No server side decryption key storage or knowledege at all
  • Any type fs storage is pure optional

Executable

  • Chroots, drops privs, small resource footprint
  • Minimlal startpage less than < 3kb, all UX elements embedded

Configuration

  • BUILD TIME CONFIGURATION ONLY! Type safe configuration only!
  • No unsafe runtime config files, commandline options or file parser!
  • Details configuration: see server.go
  • Example configuration: see APP/npad/main.go

Anything else?

  • Yes, its an quick hack,
  • No pre-build release binaries, build-time-configuration-only!

DOCS

pkg.go.dev/paepcke.de/npad

CONTRIBUTION

Yes, Please! PRs Welcome!

Documentation

Overview

package npad

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	// ############################################### START APP CONFIG ###############################
	// APP
	App string // app name [required]
	// NETWORK
	ListenAddr string // server listen Address [name:port] [required]
	// TLS CERTIFICATES
	CAcert        string // server cert path [disable:<emptu>]
	CAkey         string // server key path [disable:<empty>]
	CAclient      string // clientCA certificate [disable: <empty>]
	CAPrivateOnly bool   // if true, enforce mtls mode-only [disable: false]
	// DATA STORE BACKEND
	Calgo     string        // compression algo  [GZIP] [extended:ZSTD, see io.go] ][disable <empty>]
	Clevel    int           // compression level [GZIP:1-9] [ZSTD:1-19] [disable: 0]
	Ealgo     string        // encryption algo [AESGCM|GCMSIV|X|CHACHA20POLY1305]
	AutoGC    bool          // enables removal of expired pastes [required]
	AutoGCInt time.Duration // config how often store gc is processed [required]
	// OPTIONAL PERMANENT DATA STORE FILE SYSTEM BACKEND
	// *** WARNING *** deactivated by default, if activated, stores pastes in <ChrootDir> instead of ram [map]!
	// *** WARNING *** any change or [de]activation of [encrypt|compress] parameter needs a complete permanent store wipe!
	PermSTORE bool // activeate the filesystem backed permanent store [disable: false]
	// Log
	Log *logsec.LogD // see pkg lib/logsec
	// Chroot
	Chroot *logsec.ChrootD // see pkg lib/logsec
	// contains filtered or unexported fields
}

Config global app configuration for examples values -> see APP folder

func (*Config) Start

func (conf *Config) Start()

Start ...

Directories

Path Synopsis
cmd
package compress ...
package compress ...
package encrypt ...
package encrypt ...
package url2svg ...
package url2svg ...

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL