urlStash

module
v0.0.0-...-db51e23 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 22, 2024 License: MIT

README

urlStash

A webapp for sharing urls.

[Currently WIP]

This project is currently Work in Progress. Some functionality might not be implemented yet.

Table of Contents

Motivation

While there are several existing services that allow you to bookmark or share links, many are closed-source and lack the flexibility and customization. With urlStash, you get the power and control over your data by self hosting your own instance.

Features

  • Easily create collections of links (stashes) and organize them with descriptive titles.
  • Easily Add/Remove more links to your Stashes

Tech Used

  • Golang net/http for building the REST API
  • Postgres as the Database
  • Sveltekit for the frontend

Getting Started

Prerequisities:
  • Go >=1.22
  • Nodejs and npm
  • A Postgres Database up and running on your system
Download:
git clone https://github.com/ary82/urlStash.git && cd urlStash
Run:
  • First, you'll need to populate the env vars required for the project. Copy the .env.example files and populate them
cp ./.env.example ./.env
cp ./web/.env.example ./web/.env
# Populate the empty fields
  • Next, prepare your DB by running
psql -h localhost -p PORT -U USERNAME -W urlStash -f ./migrations/init_up.sql
  • Build and run the REST API
make run
# Or watch for changes using air
make watch
  • Build and run frontend. Install dependencies using your node package manager(npm, yarn, pnpm). I'm using pnpm for this project.
cd web
# Install dependencies
pnpm install
# Run in dev mode
pnpm run dev
# Or build
pnpm run build

Todo

  • Code

    • Complete basic functionality
    • Decouple Database logic completely, pass behaviour instead
    • Add More Tests
    • Make middleware more readable
  • Features

    • Sharing with specific users
    • Make Google auth optional in build step
    • Dockerize and make self hostable
    • Allow importing/exporting from browser

Directories

Path Synopsis
cmd
internal
app

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL