This is a link protector written in PHP with a MySQL database.
Users can enter a bunch of links (eg download links) and will get a link to share. The link can be protected with a password and/or captcha and can be auto deleted after specified time. Data is encrypted to prevent liability for any stored links.
linkpwd is a self hosted alternative to services like keeplinks.org, filecrypt.cc or former share-links.biz, linkcrypt.ws.
Don't want to run linkpwd on your own server? See the list of public instances if you just want to use it.
- Download latest version from GitHub
- Copy
includes/config.example.php
toincludes/config.php
- Edit
includes/config.php
with your configuration (only the MySQL database connection and DEFAULT_URL are required) - Set up your MySQL database with the
database.sql
file - You can set up a cronjob that calls the
cron.php
file daily to remove old data from the database
- Create a backup of your database and
includes/config.php
file - Download latest version from GitHub
- Remove all files from your webserver and upload the new files
- Upload your old
includes/config.php
file - Call
upgrade.php
file in your webbrowser (if this file is available) - You can delete the
upgrade.php
file now (if this file was available)
linkpwd uses a Bootstrap css theme. You can get other styles for example from Bootswatch and replace the /assets/css/bootstrap.min.css
file.
In includes/config.php
set API_ENABLED to true and add an username and password to the API_KEYS array.
Send a HTTP request to /api-show.php to retrieve links.
GET parameters:
id
key
iv
password
= password for the link
required POST parameters:
apiuser
= API usernameapipass
= API password
The response is in JSON format:
{
"status":404,
"errormsg":"This is an invalid link."
}
It will give you a status code that is the same as the HTTP status code:
401
= the API username or password was invalid403
= the password for the link was invalid404
= either id/key/iv parameters are malformatted or there is no data for this id in the database423
= the API is disabled in configuration200
= success
And the JSON has an error message to describe the problem.
You can support this project with a donation via
Bitcoin: bc1qfx72jn66uxmrelc9kp92406mxrhsvmyaupyz6j
Bitcoin Cash: bitcoincash:qz7txcd367f45tdrwuxcspqu3w9505nnnchayrdcck
Ethereum: 0x3c1690c0021E4998ab6A3918e0F80De952719411