Skip to content

singlelink-co/Singlelink

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Repository files navigation






Singlelink is a free & open-source link manager built with NuxtJS, NodeJS, TailwindCSS, and MongoDB.

Version License Users

Twitter Follow

Get startedDevelopmentDeploymentCreditsSupportRelatedLicense


Singlelink promotional graphic


Get started

There are a few pre-requisites you need to have before hosting Singlelink, seen below.

  • Two NodeJS servers (ex: $5/mo DigitalOcean Droplet)
  • A MongoDB database (ex: Free MongoDB Atlas M0 Cluster via GCP)

Once you have the following established, it's time to begin installing & configuring your installation.

Client

# Clone repostiory to local device
git clone git@github.com:Neutron-Creative/Singlelink.git

# Enter client of new project
cd Singlelink

# Install necessary dependencies
npm install
sudo npm install -g nuxt-start

# Set API Url
export BASE_URL=<your-api-url>

# Run first build
npm run build

# Start your server
npm start

Server

# Clone repostiory to local device (don't need to repeat if performed previously for client)
git clone git@github.com:Neutron-Creative/Singlelink.git

# Enter client of new project
cd Singlelink/server

# Install necessary dependencies
npm install

# Generate config from example
cp config-example.js config.js

# Modify config.js (set API domain to localhost & client domain as neccessary)
vim config.js

# Install necessary dev dependencies
sudo npm install -g forever nodemon

# Start your server
forever start index.js

Development

Client

Develop on the client if you're looking to make changes to the interface or styles of the application.
Note, pay attention to the notice below. You'll need to build & start the client before each usage to have your changes reflect properly in the application.

# ---------------------------------------------------------------------------------- #
# NOTICE: Anytime you make changes, kill the server, rebuild, and restart as follows #
# ---------------------------------------------------------------------------------- #

## CD into Client
cd Singlelink/client

# Rebuild application (compiles .vue files into raw html, css, and js)
npm run build

# Restart server
npm start

Server

Develop on the server if you're looking to make changes to the logic of the application.
Developing on the server is a bit simpler, in that there is no "rebuild" process. With nodemon, changes are reloaded live instantaneously.

## CD into Server
cd Singlelink/server

# Start nodemon
nodemon index.js

Deployment

Use the following instructions for deploying changes made locally to your production servers.
Note, before following the next steps - ensure you have pushed all changes to the git master branch!

Client

# SSH into server
ssh root@<your-server-ip>

# Enter tmux session (if first time then tmux && cd Singlelink)
tmux attach

# Break existing client host session
# Not to be typed, press both keys simultaneously
# Ctrl + C

# Pull changes from remote origin master branch
git pull

# Rebuild Nuxt JS
npm run build

# Restart server session
nuxt-start ./ -H <your-client-ip> -p 80

# Exit tmux session
# Not to be typed, press both keys simultaneously
# Ctrl + b
# Afterwhich, press the following key
# d

# Exit server, changes are deployed!

Server

# SSH into server
ssh root@<your-server-ip>

# Enter correct directory
cd ~/Singlelink/server/

# Pull latest changes from git
git pull

# Restart server with changes (if first time then forever start index.js)
forever restart index.js

# Exit server, changes are deployed!

Credits

Singlelink was built by the following individuals.

Currently, Singlelink lacks contributors outside its founders at Neutron Creative, but, you can help. Visit the issues page today and create your first pull request to get featured here!



Support

Need help? Our community support is online 9AM-5PM EST M-F, and our enterprise support team is available 24/7/365 via (email or phone). Don't hesitate to get in touch, we love to help and we're often able to resolve issues within the hour!

Additionally, we've listed a few frequently asked questions below.
Help, my API isn't working!

Often, this is caused by an incomplete config.js file in Singlelink/server/config.js, be sure this is complete!

My client isn't working properly!

This is most often caused by an incomplete/incorrect build, with missing environment variables or something of the like. To fix, ensure that the $BASE_URL environment variable is properly set on your client server, and run npm run build inside your client directory to manually rebuild the project.

How can I host this on Netlify?

Unfortunately, we discontinued static platform support in late 2020 when moving to v2.0 to gain features such as dynamic open-graph images, search engine optimization, alongside custom meta data.

When will you have x feature?

Check our roadmap! We're regularly adding new features, and list our most up-to-date plans on Github.

I'm having trouble installing Singlelink. Can I pay you to install & it for me?

Yes! As of January 2020, you can reach out to support@neutroncreative.com and we'll be glad to help you get set up (incurs $100 install + $35/mo hosting fees). We offer full installation, management, and maintenance services for Enterprise clients starting at just $35/mo.

How can I suggest a feature/report a bug?

The Github issue tracker is the best place to do that! No matter your experience & ability creating Github issues, this is the best way for us to see & respond quickly to your requests.

Do you have a community I can join?

Yes! We're actively daily on Discord and would love to have you!



Singlelink is Neutron Creative product, created and hosted free of charge in the mission of open-source. To learn more about our mission, visit neutroncreative.com


License

Singlelink is a free & open-source link manager built with NuxtJS, NodeJS, TailwindCSS, and MongoDB.

Copyright (C) 2020 Neutron Creative Inc.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.