Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/migueldemoura/myazo

Self-hosted, cross-platform Gyazo alternative
https://github.com/migueldemoura/myazo

cross-platform gyazo screenshot self-hosted

Last synced: 6 days ago
JSON representation

Self-hosted, cross-platform Gyazo alternative

Awesome Lists containing this project

README

        

# Myazo

![Demo](https://raw.githubusercontent.com/migueldemoura/myazo/master/demo.gif)

Myazo is a self-hosted [Gyazo] alternative. It allows you to take a screenshot of part of your screen and automatically upload it to your own server.

It is comprised by a cross-platform client in Python which defers the actual taking of screenshot to OS built-in tools (macOS and Windows) or common utilities (GNU/Linux distributions). The server script, designed with cheap shared hosting in mind, is written with the ubiquitous PHP. Both the client and server are single files. You may separate the settings from the code if you wish.

It can also function as a mere Gyazo client, uploading directly to Gyazo's servers. In that case, you simply need the client and to set the configuration option `gyazo_server` to `True`. This mode won't send additional metadata like Gyazo's proprietary clients.

## Compatibility

### Client

* Python >= 3.8 (check with `python --version` or `python3 --version`)

The following OSes have off-the-shelf compatibility. You can add more back ends for missing systems or configurations.

* GNU/Linux (presets for `gnome-screenshot`, `xfce4-screenshooter`, `spectacle`, `scrot` and `import` (ImageMagick))
* macOS
* Windows 10 >= 1703 Creators Update (check with `winver` - Build >= 10.0.15063.251)

### Server

* PHP >= 7.1 (check with `php -v` or `php -r 'echo phpinfo();'`)

## Installation

* Install [Python] 3 and choose the version matching your CPU arch (x86 or x86-64);
* Install client requirements:

```shell
pip3 install -r requirements.txt
```

Alternatively, you can use poetry:

```shell
pip3 install poetry
cd client/ && poetry install
```

You'll have to ensure that the python script is then ran with `poetry run`.

* Choose or generate a secret key and fill in the variable `secret` at `client/src/myazo.py`;
* Hash the secret key with bcrypt and fill in the variable `secretBcrypt` at `server/src/upload.php`;
You can do so with PHP itself:

```shell
php -r "echo password_hash('yoursecrethere', PASSWORD_DEFAULT);"
```

If you don't have access to a php cli, create a `hash.php` file on your web server with `
[Python]:
[Docker]:
[Docker Compose]: