Skip to content
/ photon Public
forked from Xyphyn/photon

A sleek client for Lemmy with powerful mod and admin tools. The only alternative client with feature parity to the official client.

License

Notifications You must be signed in to change notification settings

gapetto/photon

 
 

Repository files navigation

Photon

Jump to:

An sleek web client for Lemmy using mono-ui, a custom design system.

Screenshots

Screenshot from 2023-10-07 12-44-01 Screenshot from 2023-10-07 12-44-07

Self-hosting

Put Photon on your own domain for easier onboarding.

Running from image

# Use the env var PUBLIC_INSTANCE_URL to set the default instance URL.
docker run -p 8080:3000 -e PUBLIC_INSTANCE_URL=example.com ghcr.io/xyphyn/photon:latest

Running from repo

More unstable but latest features

Clone the repo:

git clone https://github.com/Xyphyn/photon && cd photon

and run the docker container:

docker build -t photon .

# Use the env var PUBLIC_INSTANCE_URL to set the default instance URL.
docker run -p 8080:3000 -it photon:latest

There you go, you now have an instance of Photon running.

Configuring default settings

The most common settings you'll use are PUBLIC_INSTANCE_URL. Some selfhosters with PUBLIC_SSR_ENABLED set to true might want the instance url to be different for the server. You can use the PUBLIC_INTERNAL_INSTANCE variable for that.

PUBLIC_MIGRATE_COOKIE is useful if you want to switch Photon to your default frontend. It'll convert the logged in cookie from lemmy-ui to a Photon account. It will only work if you have PUBLIC_INSTANCE_URL set, and it will login with that instance.

The following environment variables can be set to override the default settings:

Variable Values Default Value
PUBLIC_INSTANCE_URL URL lemmy.ml
PUBLIC_FAVICON URL `/img/logo-background.svg
PUBLIC_LOCK_TO_INSTANCE bool true if PUBLIC_INSTANCE_URL is set
PUBLIC_SSR_ENABLED bool false
PUBLIC_MIGRATE_COOKIE bool false
PUBLIC_THEME system|dark|light system
PUBLIC_EXPANDABLE_IMAGES bool true
PUBLIC_MARK_READ_POSTS bool true
PUBLIC_REVERT_VOTE_COLORS bool false
PUBLIC_SHOW_INSTANCES_USER bool false
PUBLIC_SHOW_INSTANCES_COMMUNITY bool true
PUBLIC_SHOW_INSTANCES_COMMENTS bool false
PUBLIC_SHOW_COMPACT_POSTS bool false
PUBLIC_DEFAULT_FEED_SORT SortType Active
PUBLIC_DEFAULT_FEED ListingType Local
PUBLIC_DEFAULT_COMMENT_SORT CommentSortType Hot
PUBLIC_HIDE_DELETED bool true
PUBLIC_HIDE_REMOVED bool false
PUBLIC_FULL_WIDTH_LAYOUT bool false
PUBLIC_EXPAND_SIDEBAR bool true
PUBLIC_DISPLAY_NAMES bool true
PUBLIC_NSFW_BLUR bool true
PUBLIC_NEW_VOTE_BUTTONS bool false
PUBLIC_RANDOM_PLACEHOLDERS bool true
PUBLIC_REMOVE_CREDIT bool false

The values for SortType, ListingType, and CommentSortType are defined by the lemmy-js-client library.

Listing Type

https://github.com/LemmyNet/lemmy-js-client/blob/main/src/types/ListingType.ts

  • All
  • Local
  • Subscribed
  • Moderator

Sort Type

(case sensitive)

https://github.com/LemmyNet/lemmy-js-client/blob/main/src/types/SortType.ts

  • Active
  • Hot
  • New
  • Old
  • TopDay
  • TopWeek
  • TopMonth
  • TopAll
  • MostComments
  • NewComments
  • TopHour
  • TopSixHour
  • TopTwelveHour
  • TopThreeMonths
  • TopSixMonths
  • TopNineMonths
  • TopYear

Comment Sort Type

https://github.com/LemmyNet/lemmy-js-client/blob/main/src/types/CommentSortType.ts values:

  • Hot
  • Top
  • New
  • Old
  • Controversial

Public Instances

Want your instance added here? Make a GitHub issue or make a PR! (this is for general purpose Photon instances.)

phtn.app is the official instance and will get updates instantly.

Instance Location Contact
phtn.app (Official) 🇺🇸 US West photon@xylight.dev
ph.opnxng.com 🇸🇬 Singapore about.opnxng.com
photon.thesanewriter.com 🇺🇸 US East thesanewriter@lemmy.thesanewriter.com
p.darrennathanael.com 🇺🇸 US East noc@darrennathanael.com
p.lemmy.ohaa.xyz 🇦🇹 Austria (???)
photon.zhenyapav.com (Has not updated since v1.9.2) 🇮🇸 Iceland zhenyapav@zhenyapav.com
ph.buckodr.ink (Has not updated since v1.21.1) 🇺🇸 US East admin@buckodr.ink
phtn.ngn.tf 🇹🇷 Turkey services@ngn.tf

Donate

You can donate at Buy me a Coffee

About

A sleek client for Lemmy with powerful mod and admin tools. The only alternative client with feature parity to the official client.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Svelte 79.1%
  • TypeScript 18.8%
  • HTML 0.8%
  • JavaScript 0.7%
  • CSS 0.5%
  • Dockerfile 0.1%