purrforce/README.md

108 lines
3.9 KiB
Markdown

# PurrForce
purrforce purforce-purforce-purforce...(drum roll)... its
real-ly the cats me-ow...(meow) (meow)
like the lamas ass winamp thing
it can play that by default on each startup. launches to
the system tray if %APPDATA% has purfoce.ini that tells the
server address, else it prompts for server deets
uses http/https for all comms
because you might want to run it behind nginx with proxy
pass, the server runs just http and you use apache or nginx
reverse proxy to do lets encrypt and add https. client
tries both so we don't force people to setup some https bs.
the program does not need to store two copies (or the full
history) on your local PC. only your current working copy
is stored, and is rsynced to the server.
also, server does not keep too many backups because it will
use up too much space. but users can request a backup via
rightclick menu on any file.
click on systray to get a list of all files currently being
tracked. tracking is via direct file selection not using
any kind of repo.
you can use github for code, and purrforce for the massive
.blend files and such.
server maintains list of users registered and list of users
online. you can ping them a DM and it shows up in their
systemtray, it can reference a file you tracked and suggest
them a path to save it to.
path can use variables that they can set in the GUI
varaibles section which is stored in .ini file locally as
you might have different computers each with the base
project dir in different locations each time.
if you add a file to tracking you add it writeable in
progress or readonly finished. others can DL it but the
systray will constantly set its file flags to readonly,
unless they right click clone private copy (tracked) or
clone private copy (untracked) under a new name. with a
checkbox for remove original from local drive.
normal deleting a file just makes it untracked but still
available in systray file listing on server, can redownload
from server. to delete on server, rightclick and choose
delete on server (keep local) or delete on both server and
local. Server side it moves to recycle bin and old recycle
bin items get deleted to make hdd space free when needed.
systray has a bar meter of how much server HDD is used up.
allows storage slaves to connect to server and provide a
fixed GB amount of storage for the server to use via remote
commands (rename,copy,delete,create,rsync transfer).
sys admin panel shows server HDD and all slave HDD and all
file objects with rectangle size set by file size in mb,
and drag drop to move storage locations.
client access a file stored on storage slave? all client
transfer goes to server, which then proxies to storage
client. only server needs to have a stable IP, storage
slaves can be behind carrier grade NAT, the connection is
storage slave connects to server in an infinite loop and
long holds open and then bidir data transfer through that.
allow screen streaming via rapid screenshots -> video
encode -> upload to server -> all viewers download from
server.
allows remote assistance by request assistance right click
option on systray icon, choose user to gift control, they
get a popup to confirm, they get an SDL window that sees
your desktop stream, and mouse and kb input into that
window are sent to you and emitted by the app using
SendKey() type OS calls. Should allow someone to quickly
jump in and show you how to do something in your local
blender model, etc. also microphone streaming to speakers.
and an optional internet radio streamed from server with
playlist requests voting. Add a track by syncing a local
music file to server radio/ folder and then enqueue it in
the radio requests UI on the systray app.
app tracks mouse / kb activity and provides AFK status and
online status on all registered user avatars.
designed as a blender model and other large binary file
syncing service to complement a github repository for LGDG
collab project mar-apr 2024.