GithubHelp home page GithubHelp logo

mdecourcy / voyager Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aeharding/voyager

0.0 0.0 0.0 17.96 MB

Voyager — a mobile-first Lemmy web client

Home Page: https://vger.app

License: GNU Affero General Public License v3.0

JavaScript 0.60% TypeScript 89.43% CSS 0.45% HTML 6.02% Dockerfile 0.18% Java 0.21% Swift 2.83% Ruby 0.28%

voyager's Introduction

Voyager logo

Voyager

A mobile-first Lemmy web client

  ​   

matrix chat


Voyager screenshots

Voyager for Lemmy

Voyager is an Apollo-like open source web client for Lemmy. It's a mobile-first app, but works great on desktop devices, too. Please feel free to try it out!

What does Voyager currently support?

  • Light/dark mode
  • View and subscribe to communities
  • Multi account support
  • Single comment thread context view
  • Upvote, downvote and reply to threads and comments
  • Interact with user profiles
  • Comment thread collapsing
  • A bunch of swipe gestures
  • Messaging, mentions and replies
  • Creating new posts (url/photo/text)
  • Deleting/editing comments
  • Deleting/editing posts
  • Swipe to hide posts
  • Saving/bookmarking
  • Favorites
  • Android theme (beta)

What is on the roadmap?

  • More customization
  • Native notifications and badging
  • Mod features
  • Native apps
  • Translations
  • ...and more!

💪 Mobile webapps are awesome

Native apps can be great, but we believe in the strengths of the web. Why use a web-based Lemmy client?

  • Cross-platform Use the familiar Voyager interface on your phone, tablet, desktop computer, and more!
  • Self-hostable No worries about your favorite app getting taken down, and you can customize to your desire!
  • Lightweight No large installation bundles - and it's easy to try it out

Deployment

Official Deployment

The Voyager team maintains a deployment at:

Self-Host

There are two ways you can run Voyager as a PWA in a production environment. The recommended method is using docker. We also support a traditional deployment method without docker. Read below to see how to get each method set up.

Environment variables

  • CUSTOM_LEMMY_SERVERS (optional) e.g. lemmy.world,lemmy.ml,sh.itjust.works - a comma separated list of suggested servers. The first will be used as default view for logged out users. You can specify only one if you want.

Docker Deployment

In order to host Voyager yourself you can use the provided Dockerfile to build a container with Voyager. The Docker container itself does not provide any SSL/TLS handling. You'll have to add this bit yourself. One could put Voyager behind popular reverse proxies with SSL Handling like Traefik, NGINX etc.

Tip: Use Watchtower to keep your deployment automatically up to date!

From source
  1. checkout source git clone https://github.com/aeharding/voyager.git
  2. go into new source dir: cd voyager
  3. build Docker image: docker build . -t voyager
  4. start container: docker run --init --rm -it -p 5314:5314 voyager
Prebuilt
  1. pull image docker pull ghcr.io/aeharding/voyager:latest
  2. start container: docker run --init --rm -it -p 5314:5314 voyager

Note: The provided Dockerfile creates a container which will eventually run Voyager as non-root user.

Traditional Deployment

If you want to run a production build without Docker, you can build from source and run with the following commands (change PORT to whatever you prefer):

pnpm install
pnpm build
NODE_ENV=production PORT=5106 node server.mjs

Ecosystem

Note: Community deployments are NOT maintained by the Voyager team. They may not be synced with Voyager's source code. Please do your own research about the host servers before using them.

💖 Sponsors

If you're enjoying Voyager, you can sponsor it:

We would also appreciate sponsoring other contributors to Voyager. If someone helps you solve an issue or implement a feature you wanted, supporting them would help make this project and OS more sustainable.

🧑‍💻 Contributing

We're really excited that you're interested in contributing to Voyager! Before contributing, make sure you read through existing issues. Before working on a large PR, please open an issue to discuss first.

Local Setup

Clone the repository and run on the root folder:

pnpm install
pnpm run dev

Warning: you will need corepack enabled.

iOS Native App

To build the iOS native app:

  1. Install Node
  2. Install Ionic CLI
  3. Install Xcode
  4. Cocoapods

Then, build the project and copy web dependencies over:

corepack enable
pnpm install
ionic capacitor build ios

Finally, can run the project with CMD+R.

Android Native App

To build the Android native app:

  1. Install Node
  2. Install Ionic CLI
  3. Install Android Studio

In Voyager source code directory:

corepack enable
pnpm install
ionic capacitor build android

Android Studio should open.

You may need to sync. File -> Sync Project with Gradle Files

Finally, can run the project with Ctrl+R.

Testing

Voyager uses Vitest. You can run the test suite with:

pnpm test

🚀 Releasing

To release a new version:

BUILD=123; npx release-it

Make sure the build number is incremental. This is used for F-droid.

Voyager uses Ionic App Flow for Apple App Store and Android Play Store builds. Unfortunately, there's no way to provide public access to build logs and artifacts. Hopefully someday. :-)

📲 PWA

Voyager works best added to the homescreen. There are certain features that only work there, like badging and smooth page transitions.

🦄 Stack

  • React - The library for web and native user interfaces
  • Vite - Next Generation Frontend Tooling
  • Ionic - The mobile SDK for the Web
  • Virtuoso - Display large data sets using virtualized rendering
  • vite-plugin-pwa - Prompt for update, Web Push Notifications and Web Share Target API

👨‍💻 Contributors

Shoutout to @fer0n for the great logo and splashscreen! And thank you 💙 all of our contributors to the codebase:

📄 License

Logo & Splashscreen

CC BY-SA 4.0 © @fer0n

Code

AGPL-3.0 © Voyager contributors

voyager's People

Contributors

aeharding avatar mdecourcy avatar rsammelson avatar burakcan avatar fer0n avatar zoe-codez avatar httpjamesm avatar svrem avatar tpkee avatar geneccx avatar zackhow avatar xbracey avatar nohoster avatar jmaruiz avatar robertnabbe avatar penagwin avatar rlirli avatar elpendor avatar brendn avatar fitzhawke avatar sharunkumar avatar sasuryynala avatar rideron89 avatar xpertbot avatar robbiegm avatar rotora avatar nickgal avatar nathanielcwm avatar crazybus avatar mbentley avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.