1
6
Fork
You've already forked picverse
0
activitypub based blogengine
  • Go 97.8%
  • CSS 2.2%
2025年03月08日 18:06:23 +00:00
activitypub switch to .env 2025年03月02日 16:15:42 +00:00
cmd close session 2025年03月08日 14:41:37 +00:00
config add enable flag 2025年03月08日 16:10:20 +00:00
database img pagination 2023年12月10日 19:18:37 +04:00
examples cleanup 2025年03月08日 18:01:25 +00:00
helpers add refederation flag 2024年11月28日 19:54:28 +04:00
logger add refederation logic for single note 2024年11月29日 01:23:18 +04:00
routes Update routes/handlers.go 2024年09月24日 19:50:23 +00:00
services cleanup 2025年03月08日 17:38:43 +00:00
static add: favicon handler 2023年12月03日 10:45:33 +04:00
views Update views/templates/home.tmpl 2024年11月29日 11:32:36 +00:00
.gitignore add err handling 2024年09月23日 02:35:14 +04:00
go.mod close session 2025年03月08日 14:41:37 +00:00
go.sum close session 2025年03月08日 14:41:37 +00:00
LICENSE move picverse 2022年07月06日 22:07:33 +04:00
pod.json add not found case 2024年09月21日 20:21:36 +04:00
README.md cleanup 2025年03月08日 18:01:25 +00:00


picverse

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

ActivityPub based blogengine

(back to top)

Getting Started

Installation

  1. if you want useradd -m picverse passwd picverse
  2. install go, nginx, certbot, postgres
  3. git clone [project_link]
  4. cp -r ../examples/config.json.example config/config.json then change dsn and host
  5. mkdir /etc/nginx/sites-available & mkdir /etc/nginx/sites-enabled
  6. sudo ufw allow 'Nginx HTTP
  7. create database and user in postgres
  8. go build picverse/cmd/main.go
  9. ./main picverse table
  10. git clone https://gitlab.com/kamee/picverse_template static
  11. mkdir keys
  12. openssl genrsa -out private.pem 2048
  13. openssl rsa -in private.pem -outform PEM -pubout -out public.pem
  14. vim /etc/nginx/sites-available/picverse.conf example:
upstream phoenix {
	server 127.0.0.1:8080 max_fails=5 fail_timeout=60s;
}
server {
	server_name example.rip www.example.rip;
	listen 80;
	listen [::]:80;
	location / {
		return 301 https://$server_name$request_uri;
	}
}
server {
	server_name example.rip www.example.rip;
 # [...certificate configs...]
	# the nginx default is 1m, not enough for large media uploads
	client_max_body_size 1m;
	ignore_invalid_headers off;
	proxy_http_version 1.1;
	proxy_set_header Upgrade $http_upgrade;
	proxy_set_header Connection "upgrade";
	proxy_set_header Host $http_host;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	location / {
		proxy_pass http://phoenix;
	}
	location ~ ^/(media|proxy) {
		slice 1m;
		proxy_cache_key $host$uri$is_args$args$slice_range;
		proxy_set_header Range $slice_range;
		proxy_cache_valid 200 206 301 304 1h;
		proxy_cache_lock on;
		proxy_ignore_client_abort on;
		proxy_buffering on;
		chunked_transfer_encoding on;
		proxy_pass http://phoenix;
	}
}
  1. ./main -h to see available command to create new actor, new post, etc.

(back to top)

Usage

create a new actor:

./main -actor create

create a new post: touch first_post.md

./main -note create

create a post from images directory images in directory images/[some_dir/example.png

./main -note img

./main -note create

to see existing notes

./main -note load

TODO

(back to top)

Roadmap

TODO

  • Docs
  • Spam handling
  • Testing/Benchmarks
  • Multi-language Support
  • Create a logo
  • Improve perfomance of image loading
  • C2S
  • add .env - read db config from there

features

  • Atom
  • Sync with PubSub
  • Sync with gemini capsule
  • Convert posts to Gemini format
  • Gallery mode

bugs

  • fetching issues for unicode paths
  • some follow requests were not added to db

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the GNU License. See LICENSE.txt for more information.

(back to top)

Contact

fedi - @kamee@vostain.net mail - nokamee@protonmail.com

Project Links: codeberg

(back to top)

Acknowledgments

(back to top)