🚀 Launch v0.0.2
0
.dockerignore
Normal file → Executable file
0
.gitignore
vendored
Normal file → Executable file
11
Dockerfile
Normal file → Executable file
|
@ -1,6 +1,15 @@
|
|||
FROM node:lts AS runtime
|
||||
FROM node:alpine3.20 AS runtime
|
||||
WORKDIR /app
|
||||
|
||||
# Metadata
|
||||
LABEL org.opencontainers.image.title="Blackclip"
|
||||
LABEL org.opencontainers.image.vendor="SudoVanilla"
|
||||
LABEL org.opencontainers.image.description="Link Sharing"
|
||||
LABEL org.opencontainers.image.licenses="AGPL-3.0-or-later"
|
||||
LABEL org.opencontainers.image.url="https://ark.sudovanilla.org/Korbs/Blackclip/"
|
||||
LABEL org.opencontainers.image.source="https://ark.sudovanilla.org/Korbs/Blackclip/"
|
||||
LABEL org.opencontainers.image.version="0.0.2"
|
||||
|
||||
# Copy site to Docker image
|
||||
COPY . .
|
||||
|
||||
|
|
0
LICENSE
Normal file → Executable file
167
README.md
Normal file → Executable file
|
@ -1,2 +1,169 @@
|
|||
# BlackClip
|
||||
|
||||
BlackClip is a link sharing project, open source and can be self-hosted.
|
||||
|
||||
## Setup with Docker
|
||||
|
||||
Create a folder for BlackClip and craete two files, the compose and ENV file:
|
||||
```bash
|
||||
# Create Folder
|
||||
mkdir ./blackclip
|
||||
cd ./blackclip
|
||||
|
||||
# Create Files
|
||||
touch docker-compose.yml
|
||||
touch .env
|
||||
```
|
||||
|
||||
In `docker-compose.yml`:
|
||||
```yaml
|
||||
services:
|
||||
blackclip:
|
||||
image: oci.registry.sudovanilla.org/blackclip:latest
|
||||
restart: always
|
||||
ports:
|
||||
- 6533:4321
|
||||
```
|
||||
|
||||
If you need to, you can set BlackClip to any port you want to use, just change `6533`. Do not change `4321`, as this is the port used inside the container.
|
||||
|
||||
In `.env`:
|
||||
```env
|
||||
# Customization
|
||||
Wallpaper="https://random-image-pepebigotes.vercel.app/api/random-image"
|
||||
|
||||
# About You
|
||||
Name="John Smith"
|
||||
Email="j.smith@sudovanilla.org"
|
||||
Avatar="/avatar.png"
|
||||
|
||||
|
||||
# Links
|
||||
Mastodon="https://mastodon.social/@mastodon"
|
||||
Tumblr="https://www.tumblr.com/shencomix"
|
||||
# Add whatever links you want here, as long as it's supported. Mastodon and Tumblr not required, they're just examples.
|
||||
```
|
||||
|
||||
## Email
|
||||
|
||||
In your `.env` file, there is a `Email` variable that you can set. If set, a button labeled "Email" will show up at the top of that page with your profile, right it's right-hand side. This button will use a `href` parameter, utilzing the `mailto:` protocol.
|
||||
|
||||
SudoVanilla recommends that add something to the email address to prevent spam. A lot of scrapers like to grab `mailto` links and email addresses on websites, since then I recommend adding `-REMOVE-TO-PREVENT-SPAM` to your email address.
|
||||
|
||||
Example:
|
||||
- Plain email: `johnsmith@example.org`
|
||||
- Recommended: `johnsmith-REMOVE-TO-PREVENT-SPAM@example.org`
|
||||
|
||||
In your email provider, setup an email rule to trash and delete all emails containting the `-REMOVE-TO-PREVENT-SPAM` email address.
|
||||
|
||||
## Supported:
|
||||
- Amazon
|
||||
- AppleBooks
|
||||
- AppleMusic
|
||||
- ApplePodcasts
|
||||
- Appstore
|
||||
- Bandcamp
|
||||
- Behance
|
||||
- Blog
|
||||
- Bluesky
|
||||
- Bookwyrm
|
||||
- Booth
|
||||
- Briar
|
||||
- Cashapp
|
||||
- Castopod
|
||||
- Codeberg
|
||||
- Codepen
|
||||
- Coffee
|
||||
- Cryptpad
|
||||
- Custom
|
||||
- Deezer
|
||||
- DevTo
|
||||
- Discord
|
||||
- EpicGames
|
||||
- Etsy
|
||||
- Facebook
|
||||
- FDroid
|
||||
- Firefish
|
||||
- Figma
|
||||
- Flickr
|
||||
- Firefox
|
||||
- Funkwhale
|
||||
- Friendica
|
||||
- Gdrive
|
||||
- Furaffinity
|
||||
- Gitlab
|
||||
- Github
|
||||
- Hearthisat
|
||||
- Goodreads
|
||||
- Instagram
|
||||
- HumbleBundle
|
||||
- Itchio
|
||||
- Itaku
|
||||
- Kit
|
||||
- Kickstarter
|
||||
- LastFM
|
||||
- KoFi
|
||||
- Letterboxd
|
||||
- Lemmy
|
||||
- Linkedin
|
||||
- Liberapay
|
||||
- Littlelink
|
||||
- Linkstack
|
||||
- Mastodon
|
||||
- Llc
|
||||
- Medium
|
||||
- Matrix
|
||||
- Misskey
|
||||
- Messenger
|
||||
- Odysee
|
||||
- Notion
|
||||
- Openstreetmap
|
||||
- Onlyfans
|
||||
- Patreon
|
||||
- Owncast
|
||||
- Peertube
|
||||
- Paypal
|
||||
- Picarto
|
||||
- Phone
|
||||
- Piwigo
|
||||
- Pinterest
|
||||
- Playstore
|
||||
- Pixelfed
|
||||
- Producthunt
|
||||
- Pleroma
|
||||
- Reddit
|
||||
- Pronounspage
|
||||
- Share
|
||||
- Session
|
||||
- Simplex
|
||||
- Signal
|
||||
- Snapchat
|
||||
- Skoob
|
||||
- Spotify
|
||||
- Soundcloud
|
||||
- Strava
|
||||
- Steam
|
||||
- Telegram
|
||||
- Streams
|
||||
- Throne
|
||||
- Threema
|
||||
- Trakt
|
||||
- Tiktok
|
||||
- Tumblr
|
||||
- Trello
|
||||
- Twitter
|
||||
- Twitch
|
||||
- Unraid
|
||||
- Unity
|
||||
- Upptime
|
||||
- Untappd
|
||||
- Venmo
|
||||
- Vcard
|
||||
- Vrchat
|
||||
- Vimeo
|
||||
- Whatsapp
|
||||
- Website
|
||||
- Xing
|
||||
- Wordpress
|
||||
- YoutubeMusic
|
||||
- Youtube
|
0
astro.config.mjs
Normal file → Executable file
BIN
bun.lockb
6
docker-compose.yml
Normal file → Executable file
|
@ -1,6 +1,6 @@
|
|||
services:
|
||||
blackclip:
|
||||
image: docker.io/library/link
|
||||
restart: unless-stopped
|
||||
image: oci.registry.sudovanilla.org/blackclip:latest
|
||||
restart: always
|
||||
ports:
|
||||
- 5522:4321
|
||||
- 6533:4321
|
12
package.json
Normal file → Executable file
|
@ -1,19 +1,21 @@
|
|||
{
|
||||
"name": "blackclip",
|
||||
"type": "module",
|
||||
"version": "0.0.1",
|
||||
"version": "0.0.2",
|
||||
"scripts": {
|
||||
"dev": "astro dev",
|
||||
"start": "astro dev",
|
||||
"build": "astro build",
|
||||
"preview": "astro preview",
|
||||
"astro": "astro"
|
||||
"astro": "astro",
|
||||
"docker:build": "buildah build -t oci.registry.sudovanilla.org/blackclip --no-cache",
|
||||
"docker:push": "buildah push oci.registry.sudovanilla.org/blackclip"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/node": "^8.3.1",
|
||||
"astro": "^4.10.3"
|
||||
"@astrojs/node": "^9.0.2",
|
||||
"astro": "^5.1.9"
|
||||
},
|
||||
"devDependencies": {
|
||||
"sass": "^1.77.5"
|
||||
"sass": "^1.83.4"
|
||||
}
|
||||
}
|
0
public/avatar.png
Normal file → Executable file
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
0
public/favicon.svg
Normal file → Executable file
Before Width: | Height: | Size: 749 B After Width: | Height: | Size: 749 B |
0
public/icons/amazon.svg
Normal file → Executable file
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
0
public/icons/applebooks.svg
Normal file → Executable file
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
0
public/icons/applemusic.svg
Normal file → Executable file
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
0
public/icons/applepodcasts.svg
Normal file → Executable file
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
0
public/icons/appstore.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
0
public/icons/bandcamp.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
0
public/icons/behance.svg
Normal file → Executable file
Before Width: | Height: | Size: 630 B After Width: | Height: | Size: 630 B |
0
public/icons/blog.svg
Normal file → Executable file
Before Width: | Height: | Size: 791 B After Width: | Height: | Size: 791 B |
0
public/icons/bluesky.svg
Normal file → Executable file
Before Width: | Height: | Size: 640 B After Width: | Height: | Size: 640 B |
0
public/icons/bookwyrm.svg
Normal file → Executable file
Before Width: | Height: | Size: 372 KiB After Width: | Height: | Size: 372 KiB |
0
public/icons/booth.svg
Normal file → Executable file
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
0
public/icons/briar.svg
Normal file → Executable file
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
0
public/icons/cashapp.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
0
public/icons/castopod.svg
Normal file → Executable file
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
0
public/icons/codeberg.svg
Normal file → Executable file
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
0
public/icons/codepen.svg
Normal file → Executable file
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
0
public/icons/coffee.svg
Normal file → Executable file
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
0
public/icons/cryptpad.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
0
public/icons/custom.svg
Normal file → Executable file
Before Width: | Height: | Size: 915 B After Width: | Height: | Size: 915 B |
0
public/icons/deezer.svg
Normal file → Executable file
Before Width: | Height: | Size: 766 B After Width: | Height: | Size: 766 B |
0
public/icons/dev-to.svg
Normal file → Executable file
Before Width: | Height: | Size: 788 B After Width: | Height: | Size: 788 B |
0
public/icons/discord.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
0
public/icons/email.svg
Normal file → Executable file
Before Width: | Height: | Size: 310 B After Width: | Height: | Size: 310 B |
0
public/icons/email_alt.svg
Normal file → Executable file
Before Width: | Height: | Size: 673 B After Width: | Height: | Size: 673 B |
0
public/icons/epic-games.svg
Normal file → Executable file
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
0
public/icons/etsy.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
0
public/icons/facebook.svg
Normal file → Executable file
Before Width: | Height: | Size: 478 B After Width: | Height: | Size: 478 B |
0
public/icons/fdroid.svg
Normal file → Executable file
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
0
public/icons/figma.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
0
public/icons/firefish.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
0
public/icons/firefox.svg
Normal file → Executable file
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
0
public/icons/flickr.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
0
public/icons/friendica.svg
Normal file → Executable file
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 7.2 KiB |
0
public/icons/funkwhale.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
0
public/icons/furaffinity.svg
Normal file → Executable file
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.7 KiB |
0
public/icons/gdrive.svg
Normal file → Executable file
Before Width: | Height: | Size: 755 B After Width: | Height: | Size: 755 B |
0
public/icons/github.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
0
public/icons/gitlab.svg
Normal file → Executable file
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
0
public/icons/goodreads.svg
Normal file → Executable file
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
0
public/icons/hearthisat.svg
Normal file → Executable file
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
0
public/icons/humblebundle.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
0
public/icons/instagram.svg
Normal file → Executable file
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
0
public/icons/itaku.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
0
public/icons/itchio.svg
Normal file → Executable file
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
0
public/icons/kickstarter.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
0
public/icons/kit.svg
Normal file → Executable file
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
0
public/icons/kofi.svg
Normal file → Executable file
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 1 KiB |
0
public/icons/lastfm.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
0
public/icons/lemmy.svg
Normal file → Executable file
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
0
public/icons/letterboxd.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
0
public/icons/liberapay.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
0
public/icons/linkedin.svg
Normal file → Executable file
Before Width: | Height: | Size: 638 B After Width: | Height: | Size: 638 B |
0
public/icons/linkstack.svg
Normal file → Executable file
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
0
public/icons/littlelink.svg
Normal file → Executable file
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
0
public/icons/llc.svg
Normal file → Executable file
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
0
public/icons/mastodon.svg
Normal file → Executable file
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
0
public/icons/matrix.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
0
public/icons/medium.svg
Normal file → Executable file
Before Width: | Height: | Size: 722 B After Width: | Height: | Size: 722 B |
0
public/icons/messenger.svg
Normal file → Executable file
Before Width: | Height: | Size: 903 B After Width: | Height: | Size: 903 B |
0
public/icons/misskey.svg
Normal file → Executable file
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
0
public/icons/notion.svg
Normal file → Executable file
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
0
public/icons/odysee.svg
Normal file → Executable file
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
0
public/icons/onlyfans.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
0
public/icons/openstreetmap.svg
Normal file → Executable file
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 122 KiB |
0
public/icons/owncast.svg
Normal file → Executable file
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
0
public/icons/patreon.svg
Normal file → Executable file
Before Width: | Height: | Size: 243 B After Width: | Height: | Size: 243 B |
0
public/icons/paypal.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
0
public/icons/peertube.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
0
public/icons/phone.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
0
public/icons/picarto.svg
Normal file → Executable file
Before Width: | Height: | Size: 501 B After Width: | Height: | Size: 501 B |
0
public/icons/pinterest.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
0
public/icons/piwigo.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
0
public/icons/pixelfed.svg
Normal file → Executable file
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
0
public/icons/playstore.svg
Normal file → Executable file
Before Width: | Height: | Size: 881 B After Width: | Height: | Size: 881 B |
0
public/icons/pleroma.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
0
public/icons/producthunt.svg
Normal file → Executable file
Before Width: | Height: | Size: 716 B After Width: | Height: | Size: 716 B |
0
public/icons/pronounspage.svg
Normal file → Executable file
Before Width: | Height: | Size: 959 B After Width: | Height: | Size: 959 B |
0
public/icons/reddit.svg
Normal file → Executable file
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 2 KiB |
0
public/icons/session.svg
Normal file → Executable file
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 1 KiB |
0
public/icons/share.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
0
public/icons/signal.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
0
public/icons/simplex.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
0
public/icons/skoob.svg
Normal file → Executable file
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
0
public/icons/snapchat.svg
Normal file → Executable file
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
0
public/icons/soundcloud.svg
Normal file → Executable file
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
0
public/icons/spotify.svg
Normal file → Executable file
Before Width: | Height: | Size: 1,004 B After Width: | Height: | Size: 1,004 B |
0
public/icons/steam.svg
Normal file → Executable file
Before Width: | Height: | Size: 940 B After Width: | Height: | Size: 940 B |
0
public/icons/strava.svg
Normal file → Executable file
Before Width: | Height: | Size: 322 B After Width: | Height: | Size: 322 B |
0
public/icons/streams.svg
Normal file → Executable file
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |