Python rewrite
This commit is contained in:
69
README.md
Normal file
69
README.md
Normal file
@@ -0,0 +1,69 @@
|
||||
Upload images to self-hosted static file server via sshfs.
|
||||
|
||||
---
|
||||
|
||||
Example usage:
|
||||
|
||||
Upload an image on the clipboard and copy the url to the
|
||||
clipboard.
|
||||
|
||||
$ imup
|
||||
|
||||
Upload an image from one or more files or urls.
|
||||
|
||||
$ imup https://example.com/image.png
|
||||
$ imup foo.png bar.png baz.png
|
||||
|
||||
Upload an image from stdin.
|
||||
|
||||
$ convert foo.png -flip - | imup -
|
||||
|
||||
## Installation and setup.
|
||||
|
||||
This assumes you already have some hosted static files and ssh configured with write permissions to that directory. Images are copied to the host via `scp`. Thus authentication is deferred to other systems like VPN and SSH, and hosting is deferred to static web servers like nginx. This tool is only a convenience to normalize/strip image data and upload the files.
|
||||
|
||||
The client depends on `imagemagick`, `sshfs`, and `xclip`. The host only needs to serve ssh and static files.
|
||||
|
||||
```zsh
|
||||
apt install imagemagick sshfs xclip
|
||||
```
|
||||
|
||||
Clone the repository, and install it via tool like `pipx` or `uv`.
|
||||
|
||||
```zsh
|
||||
uv tool install 'imup@git+https://git.allemangd.dev/me/imup.git'
|
||||
```
|
||||
|
||||
Configure imup with `~/.config/imup.toml`. For example, my config is:
|
||||
|
||||
```toml
|
||||
[imup]
|
||||
target = "imup-host:/var/www/i.allemangd.dev"
|
||||
base_url = "https://i.allemangd.dev/"
|
||||
```
|
||||
|
||||
Granted write permissions to `/var/www/i.allemangd.dev` to my ssh user, and configure an ssh host with keys for that user.
|
||||
|
||||
```
|
||||
# ssh config
|
||||
Host imup-host
|
||||
HostName ...
|
||||
User ...
|
||||
IdentifyFile ...
|
||||
```
|
||||
|
||||
Configure the static file host; for example on my host I have the following nginx server config:
|
||||
|
||||
```
|
||||
# nginx config
|
||||
server {
|
||||
listen 80;
|
||||
# (ssl settings omitted)
|
||||
|
||||
server_name i.allemangd.dev;
|
||||
|
||||
location / {
|
||||
root /var/www/i.allemangd.dev/;
|
||||
}
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user