packagejson

package module
v0.0.0-...-688b8c7 Latest Latest
Warning

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

Go to latest
Published: Dec 20, 2022 License: MIT Imports: 2 Imported by: 0

README

Spherical

My Kofi

Spherical is a work in progress decentralized chat application. Think like Discord but with the decentralisation of Mastodon.

Current Progress

This list will grow as I think of things that we need to release:

  • Hash Validators
    • Local caching
    • Local validation
    • Accessing /spherical.pub to check key
    • Check trusted nodes to check expected results
    • Skip nodes we have already tried recursively to prevent DDoS attack
  • Integration Tests
    • Structure
    • Implementation
  • Unit Tests
    • Setup Helpers
    • Main Tests
    • Helper Tests
  • GitHub Actions
  • Database Structure
  • Migrations
  • Event Dispatching
  • Event Handling
  • E-mail Support
  • E-mail Verification
  • Access Token Management
  • Internationalisation Engine
  • Frontend Structure
  • Shared Frontend Logic
    • Internationalisation Loader
    • Localisation for alt text and standard content
    • Streaming in markdown loader
    • Basic helpers (Notifications, buttons, loading, flexbox)
  • User Registration
    • Backend functions
    • API routes
    • Frontend
  • Out of box experience
    • Setup key fetching
    • S3 configuration (amd tests)
    • E-mail configuration (and tests)
    • Server Information
    • Owner User Setup
    • Hash Validators
    • Install completion
  • Router switching between OOBE and main app
  • User Login
    • Backend functions
    • API routes
    • Frontend
  • Gateway
    • Cross Node Login
    • Local Login
    • Local Authentication
    • Structure
    • Heartbeats
    • Ready Payload
    • Core Functionality
    • Documentation
  • Auth API abstraction
  • API V1 routes (TBD)
  • Application frontend (TBD)

Developing the application

To develop for Spherical, you will want to have both node.js and Go installed on your computer. You will also want to have a copy of Postgres and Redis locally to make it easier than trying to deal with some external database servers during development.

You will also want access to a e-mail server (can be the same as production, doesn't matter too much), and a S3 bucket (this should be separate from your production instance). From here, you will want to run yarn to setup the JS packages. From here, you will want to run yarn run start:dev to start the development server. When in development mode, Spherical will use the hard disk to grab elements, but when built in production mode, it will use the embedded files for performance and simplicity reasons.

You can just run through the setup in dev mode like you would on a production install, but it is worth noting unless you use something like Cloudflare Argo Tunnels, you will not be able to do anything cross node.

If you wish to try building for all platforms, you can use yarn build. Be warned this will take a while and use a lot of CPU, but after that you will have builds for a lot of platforms. Spherical basically targets all architectures of Windows, Linux, and FreeBSD supported by Go. If you want the full list of architectures Spherical is built for, consult the list inside scripts/buildBinaries.js.

Distributed Binaries

This application has some binary files distributed with it for use with the frontend. These are the following:

  • Roboto: Licensed under Apache-2.0. No changes made.
  • Twemoji: Licensed under CC-BY 4.0. No changes made.

Note these binaries fall under their respective licenses.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type PackageJson

type PackageJson struct {
	Version string `json:"version"`
}

func Package

func Package() PackageJson

Jump to

Keyboard shortcuts

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