Skip to content

zws-im/zws

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
.do
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Zero Width Shortener (ZWS)

Number of shortened URLs Number of visited URLs ZWS version

Shorten URLs with invisible spaces.

Try it out online: zws.im (or with our CLI).

You could also host your own private instance and use any characters you'd like (a-z, emoji, etc).

Contributors

Code Contributors

ZWS is maintained by Jonah Snider but contributions to the codebase are more than welcome!

Special thanks to Jaex for integrating ZWS into ShareX.

Financial Contributors

Help support this project as a financial contributor.

Individuals

Individual contributors

Organizations

Support this project with your organization. Your logo will show up here with a link to your website.

Organization avatar Organization avatar Organization avatar Organization avatar Organization avatar Organization avatar Organization avatar Organization avatar Organization avatar Organization avatar

Status page

A status page for the official zws.im instance of ZWS is available at status.zws.im.

Self-hosting

Heroku

Deploy to Heroku

Running an instance of ZWS on Heroku is an easy way to self-host thanks to our app.json & Procfile.

Railway

Deploy on Railway

You can also easily deploy an instance of ZWS on Railway.

DigitalOcean

Deploy to DO

We provide a template app specification YAML file to allow users to launch an instance on the DigitalOcean App Platform.

Docker Compose

  1. Clone the repository
  2. Copy db.example.env to db.env and fill in the values
  3. Copy example.env to .env and update the DATABASE_URL environment variable to match the values in db.env
  4. Remember to change the hostname of the database container to db - trying to use localhost will not work
  5. Run docker-compose up -d (this will automatically apply database migrations)

Database migrations

Database migrations are automatically applied on Heroku and Docker Compose. You can easily run database migrations manually through Docker Compose by running the following command:

docker-compose up migration

Make sure the DATABASE_URL environment variable in .env is accurate.

Heroku Postgres

If you are hosting your instance on Heroku, migrations are automatically applied. If you need to manually apply migrations or are only using Heroku for your database you'll need the credentials for your database:

  1. Get the Heroku Postgres connection URI from
  2. Create a .env file and enter in the connection URI

Example:

DATABASE_URL=postgresql://johndoe:randompassword@localhost:5432/mydb?schema=public

Afterward you can run the migration commands shown above.

Badges

ZWS instances expose a few routes that implement the Shields endpoint schema:

Image Route Description Example
Number of shortened URLs /stats/shields/urls Number of shortened URLs https://img.shields.io/endpoint?url=https://api.zws.im/stats/shields/urls
Number of visited URLs /stats/shields/visits Number of visited URLs https://img.shields.io/endpoint?url=https://api.zws.im/stats/shields/visits
ZWS version /stats/shields/version ZWS version https://img.shields.io/endpoint?url=https://api.zws.im/stats/shields/version