selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
myazo logo

Self-host myazo

v0.8.3

Cross-platform screenshot uploader with self-hosted server

BetaOpen SourceMIT
Updated6 months ago
LanguagePython
Setup difficultyModerate
Stars
212
Requires
PHP, Python
Install with Python
Demo animation showing Myazo screenshot capture and upload

What is myazo?

Myazo is a self-hosted screenshot sharing tool with a cross-platform Python client and a lightweight PHP server. The client captures screenshots using OS built-in tools on Linux, macOS, and Windows, then uploads them to your own server which stores images and returns a public URL. It can also upload directly to Gyazo's servers as an alternative client. Configuration uses an INI file for the client and a PHP array for the server. Licensed under MIT.

Should you self-host myazo?

myazo scores 42/100 on selfhost.directory (how scoring works) and ranks #7 of 9 in Image Management. It has 212 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is moderate: expect some configuration beyond a single command. It is MIT-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is Slink (59/100, 1 614 stars). It scores higher overall, so compare the two before you pick. See myazo vs Slink side by side.

Features

  • Browser opening
  • Clipboard copy
  • Cross-platform screenshot capture
  • Gyazo compatibility
  • Metadata Clearing
  • Secret token authentication
  • Self-hosted image upload

myazo README

How to install myazo

Install myazo with Python

  • Install [Python] 3 and choose the version matching your CPU arch (x86 or x86-64);
  • Install client requirements:
pip3 install -r requirements.txt

Alternatively, you can use poetry:

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;
  • Upload server/src/upload.php to your web server;
  • Disable directory listing so the list of uploaded screenshots isn't visible. For Apache, this can be done by uploading server/src/.htaccess to your web server's web root (or possibly any other directory, as long as it is a parent of the one where screenshots are stored).
  • Enter the full public url of the server/src/upload.php script in the variable upload_script at client/myazo.py.

Requires Python >= 3.10 and PHP >= 7.1 on the server

How to configure myazo

  • clear_metadataTrueControls clearing screenshot metadata before upload

    Controls clearing screenshot metadata before upload

    values: True/False

  • copy_clipboardTrueControls copy url to clipboard after upload

    Controls copy url to clipboard after upload

    values: True/False

  • gyazo_direct_linkTrueControls whether to open Gyazo direct image url

    Controls whether to open Gyazo direct image url

    values: True/False

  • gyazo_serverFalseControls whether to use Gyazo's servers

    Controls whether to use Gyazo's servers

    values: True/False

  • maxScreenshotSize2 * 1048576Maximum size in bytes of uploaded screenshot

    Maximum size in bytes of uploaded screenshot

  • open_browserTrueControls open url in default browser after upload

    Controls open url in default browser after upload

    values: True/False

  • output_urlTrueControls print url to stdout after upload

    Controls print url to stdout after upload

    values: True/False

  • saveDirName/data/Writable directory where screenshots will be stored

    Writable directory where screenshots will be stored

  • screenshotMimeTypeimage/pngMIME type of uploaded screenshot

    MIME type of uploaded screenshot

  • secrethunter2Secret token

    Secret token

  • secretBcrypt''Bcrypt hashed secret

    Bcrypt hashed secret

  • upload_scripthttps://myazo.example.com/upload.phpFull path to the upload.php file

    Full path to the upload.php file

myazo releases & version history

More in Image Management

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…