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.phptoincludes/config.php - Edit
includes/config.phpwith your configuration (only the MySQL database connection and DEFAULT_URL are required) - Set up your MySQL database with the
database.sqlfile - You can set up a cronjob that calls the
cron.phpfile daily to remove old data from the database
- Create a backup of your database and
includes/config.phpfile - Download latest version from GitHub
- Remove all files from your webserver and upload the new files
- Upload your old
includes/config.phpfile - Call
upgrade.phpfile in your webbrowser (if this file is available) - You can delete the
upgrade.phpfile 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:
idkeyivpassword= 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