106 lines
3.5 KiB
Markdown
106 lines
3.5 KiB
Markdown
# Socialtree
|
|
![demoimage](demo.png)
|
|
|
|
[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/)
|
|
[![Docker](https://badgen.net/badge/icon/docker?icon=docker&label)](https://https://docker.com/)
|
|
![Maintainer](https://img.shields.io/badge/maintainer-Nikurasu-blue)
|
|
|
|
A webpage to display links to your social media accounts, not more, but also not less.
|
|
|
|
[Overview](#overview) • [Installation](#installation) • [Building](#building) • [License](https://lbesson.mit-license.org/)
|
|
|
|
## Overview
|
|
Socialtree is a Webpage writen in php with the laravel framework to display all the links to your social media
|
|
accounts. It is ment to run within docker, but it also works on baremetal.
|
|
### Features
|
|
- [x] Preloading the links and settings before first start with a json file
|
|
- [x] Laravel command to reload the config and links
|
|
- [ ] Laravel command to change the links
|
|
- [ ] Different Themes (The next theme planned is a [DoodleCSS](https://github.com/chr15m/DoodleCSS) Theme)
|
|
- [ ] Admin interface
|
|
|
|
## Installation
|
|
As mentioned, the easiest way to do this is via Docker. For that you can use this
|
|
[docker-compose.yml](https://git.nikurasu.de/Nikurasu/socialtree/src/branch/main/docker/stacks/production/docker-compose.yml)
|
|
file or modify it for your needs.
|
|
```yaml
|
|
version: "3"
|
|
services:
|
|
web:
|
|
image: nikurasukun/socialtree:latest
|
|
volumes:
|
|
- PATH/TO/CONFIG.json:/var/www/html/src/resources/data.json
|
|
ports:
|
|
- "40890:80"
|
|
```
|
|
Mount a json with the config to `/var/www/html/src/resources/data.json`
|
|
|
|
It has to look like this
|
|
```json
|
|
{
|
|
"username": "Nikurasu",
|
|
"theme": "orange",
|
|
"profilepicture": "https://link.to.profilepicture.com/image.png",
|
|
"links": [{
|
|
"platform": "Twitter",
|
|
"link": "https://twitter.com/nik_png",
|
|
"linktext": "Twitter",
|
|
"brandcolors": 1
|
|
},
|
|
{
|
|
"platform": "Mastodon",
|
|
"link": "https://layer8.space/@Nikurasukun",
|
|
"linktext": "Mastodon",
|
|
"brandcolors": 0
|
|
}
|
|
]
|
|
}
|
|
```
|
|
With `username` you specify the displayed name. The `theme` option specifies the theme of the page. Currently these
|
|
themes are available:
|
|
- `orange`
|
|
|
|
With `profilepicture` you specify the displayed profile picture. Upload it at the image hoster or cloud provider of your
|
|
choice (imgur, imbb, Google Drive, nextcloud, etc.) and paste the direct link to the image here.
|
|
|
|
In the `links` array you can specify as many links as you want. The `platform` option is used for the coloring of the link.
|
|
At the moment I support these platforms:
|
|
- YouTube
|
|
- Pinterest
|
|
- Twitter
|
|
- TikTok
|
|
- Telegram
|
|
- Facebook
|
|
- LinkedIn
|
|
- Mastodon
|
|
- Tumblr
|
|
- VK
|
|
- Discord
|
|
- Twitch
|
|
- Instagram
|
|
- Flickr
|
|
- Deviantart
|
|
- Spotify
|
|
- Snapchat
|
|
- Reddit
|
|
- Soundcloud
|
|
- Steam
|
|
|
|
Besides coloring this option has no effect. You can make a Green Youtube Link with the `Deviantart` option if you want.
|
|
And this option isn't case sensitive.
|
|
|
|
`Link` specifies, of corse the link. With `linktext` you can specify the displayed text for the link. And with `brandcolors`
|
|
you can enable the coloring of the link in the colors of the platform you specified with `platform`.
|
|
|
|
You can change all of the settings in the running container with:
|
|
```shell
|
|
docker exec -d CONTAINER-NAME php src/artisan preloadDB:all
|
|
```
|
|
|
|
You can use the project without docker for sure, but I don't provide support for that.
|
|
|
|
## Building
|
|
|
|
If you want you can build the container by yourself. Simply run `docker build` from the project root. The Dockerfile is
|
|
in the `docker/images/base` directory. But you have to create your own `env` file and `src/resources/database.db` file
|
|
for that. |