Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fourtf/i
Simple self-host image uploader.
https://github.com/fourtf/i
Last synced: about 1 month ago
JSON representation
Simple self-host image uploader.
- Host: GitHub
- URL: https://github.com/fourtf/i
- Owner: fourtf
- License: mit
- Created: 2017-02-11T15:58:09.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2023-09-21T19:20:00.000Z (about 1 year ago)
- Last Synced: 2024-11-08T08:41:45.799Z (about 1 month ago)
- Language: Go
- Homepage:
- Size: 69.3 KB
- Stars: 22
- Watchers: 4
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- starred - fourtf/i - Simple self-host image uploader. (Go)
README
# i
i is a minimal program for uploading files to your server and getting a "i.example.com/file.png" link back, similar to imgur.com. It is compatible with the open source image capture program [Share X](https://getsharex.com/).
It does ***not*** serve the files or handle authentification. It is meant to be used with a server like nginx or caddy.
## what you need to build
- golang## how to use
- Open `i.go` and edit the configuration (set the `root` and `webRoot` variable to your desired values)
- Compile with `go build`
- Create a init.d service (if you are using another system skip this part)
- Copy the exampleservice file to /etc/init.d/ and call it `i`
- Edit it and change the `WWW_USER` to the user you want and `APPROOT` to the directory that the executable is in.
- Make it executable `sudo chmod +x /etc/init.d/i`
- Make it a service `sudo update-rc.d i defaults`
- Add a custom sharex uploader like this: ![sharex_example.png](sharex_example.png)## if you are using nginx
- Install the `apach2-utils` to generate a htpasswd file for authentification
- Create a reverse proxy for your webserver. For example use i.example.com/upload to upload the images (by default to port 9005). Add basic auth to hande the authentification.
```
location /upload {
auth_basic "Restricted Content";
auth_basic_user_file /etc/fileupload.htpasswd;
proxy_pass http://localhost:9005;
}
```
- Create a .htpasswd file using `htpasswd -c /etc/fileupload.htpasswd user` and enter a password.
- Base64 encode user:password `echo -n user:yourpassword | base64` and add a header `Authorization: Basic ` in sharex![sharex_auth.png](sharex_auth.png)
## if you are using caddy
- Create a reverse proxy for your webserver. For example use i.example.com/upload to upload the images (by default to port 9005).
- Create a hashed password with `caddy hash-password`, add basic auth to handle the authentification.
```
i.example.com {
root * /var/www/i.example.com
file_server
basicauth /upload {
user hashed_password
}
reverse_proxy /upload localhost:9005
}
```
- Base64 encode user:password `echo -n user:yourpassword | base64` and add a header `Authorization: Basic ` in sharex (image in the nginx example)## if you are using apache2
- idk figure it out, should be similar to nginx ¯\\\_(ツ)\_/¯