Photon
Jump to:
An sleek web client for Lemmy using mono-ui, a custom design system.
Put Photon on your own domain for easier onboarding.
# 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:latestMore unstable but latest features
Clone the repo:
git clone https://github.com/Xyphyn/photon && cd photonand 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:latestThere you go, you now have an instance of Photon running.
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.
https://github.com/LemmyNet/lemmy-js-client/blob/main/src/types/ListingType.ts
- All
- Local
- Subscribed
- Moderator
(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
https://github.com/LemmyNet/lemmy-js-client/blob/main/src/types/CommentSortType.ts values:
- Hot
- Top
- New
- Old
- Controversial
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 | (???) |
| 🇮🇸 Iceland | zhenyapav@zhenyapav.com | |
| 🇺🇸 US East | admin@buckodr.ink | |
| phtn.ngn.tf | 🇹🇷 Turkey | services@ngn.tf |
You can donate at Buy me a Coffee

