Giter Club home page Giter Club logo

Comments (19)

olivierlambert avatar olivierlambert commented on May 18, 2024 2

Thanks, we'll focus on the tech part in here, and have a convo in parallel with the relevant people at Vates. Thank you again for your great software and also your time to answer!

from classroomio.

rotimi-best avatar rotimi-best commented on May 18, 2024 1

Sounds good. That's fine. Whichever is fine by you. Please feel free to continue the convo here or just shoot me an email [email protected]

from classroomio.

rotimi-best avatar rotimi-best commented on May 18, 2024

@olivierlambert Thanks for opening this issue 😃.

Our stack is just Sveltekit and Supabase, the Sveltekit part is just like any frontend framework where you build and serve, that is straight forward.

However for the Supabase part, I am not sure how people want to do that part. There are 2 options according to my level of understanding now:

  1. Self-host Supabase: There are a ton of resources on how to do that, the official docs is here. Once you self host, you will then need to connect this project to your supabase account in order to run the migrations to make sure you project matches exactly what is needed for the application.

  2. Use Supabase cloud: With supabase cloud, you will also need to link it to the project so you can run migrations and deploy any change made to the repo, directly to your project.

For any of the 2 options, you still need to get these environment variables

   PUBLIC_SUPABASE_PROJECT_REF=<PROJECT REF>
   PUBLIC_SUPABASE_URL=<API URL>
   PUBLIC_SUPABASE_ANON_KEY=<anon key>
   PUBLIC_SUPABASE_BUCKET_URL=<Inbucket URL>

In addition, I need to write a script to apply changes in the repo to any supabase account.

Which of the 2 options matches your requirement?

from classroomio.

olivierlambert avatar olivierlambert commented on May 18, 2024

Hey @rotimi-best

First, (and I forgot to say that in my initial message): thank you for this great software.

Then, thank you for your very fast and detailed answer. You rock 👍

I have to admit I'm not used to Sveltekit and Supabase, so I probably need to learn a bit how it works and how I could build those.

Anyway, I'm all in for the self hosted Supabase, because I'm trying to self-host everything at my company.

from classroomio.

rotimi-best avatar rotimi-best commented on May 18, 2024

Thank you very much @olivierlambert. I am super happy to help you on your self hosting journey.

TBH I haven't selfhosted supabase before but I think the process should be well documented and smooth.

Do you mind sharing your use-case for classroomio 😃?

We can start taking baby steps to help you selfhost the whole stack, this is also gonna be helpful because we can document the selfhosting process in our documentation

from classroomio.

olivierlambert avatar olivierlambert commented on May 18, 2024

Sure, the use case is pretty simple: we'd like to offer a training/certification program on our open source virtualization stack (see https://vates.tech for the details). We started to have some courses on slides, but having a solution to deliver the courses with a quiz and such will offer a nice experience.

Obviously, this means we'll probably know to interconnect many software together (or to have an SSO for our existing customer portal to make them connect to all our apps seamlessly) but this is not the priority right now.

So I'm exploring all the different Open Source LMS platforms, I don't need something super complicated, I'm not a university or something, it's few courses (probably 10 at max on the long run).

from classroomio.

rotimi-best avatar rotimi-best commented on May 18, 2024

Oh this makes sense. This was my exact problem with the existing open source solutions. The stack was either complicated to setup and uses some stale technologies or the feature sets were more best suited for enterprises.

Do you want to try out the platform first before investing the time in selfhosting?

I can give you a quick demo or give you access to the platform to try out the cloud version yourself - whichever you prefer 😃

from classroomio.

olivierlambert avatar olivierlambert commented on May 18, 2024

Hmm why not, but usually I'm first installing it on prem and testing it. I'm crazy busy but if I can't attend the demo, someone else from my team could attend. I'll discuss this internally and book a demo via your cal link.

from classroomio.

olivierlambert avatar olivierlambert commented on May 18, 2024

So I'm back and now starting to actively try to install the stack locally, without Docker :)

If I understand correctly, the app I want to use is the "dashboard" one. I need to build that app and then to connect it to Supabase (it's another topic for now).

However, if I go in the dashboard folder and try to do npm i, I'm already stuck with:

$ npm i
npm ERR! code EUNSUPPORTEDPROTOCOL
npm ERR! Unsupported URL Type "workspace:": workspace:*

npm ERR! A complete log of this run can be found in:
npm ERR!     /var/www/.npm/_logs/2024-01-18T12_06_42_206Z-debug-0.log

I'm using Node 18.

from classroomio.

rotimi-best avatar rotimi-best commented on May 18, 2024

Welcome back 😀. Not sure if I need to improve the communication in the README however to install the packages we use pnpm.

That means you should run pnpm i

from classroomio.

olivierlambert avatar olivierlambert commented on May 18, 2024

So… progress! \o/

Now I'm in front of this:

image

from classroomio.

olivierlambert avatar olivierlambert commented on May 18, 2024

So in short, I'm loading Nginx in front of npm run preview on a domain name, and when I'm loading it, I'm redirected to https://app.classroomio.com/404?type=org

from classroomio.

olivierlambert avatar olivierlambert commented on May 18, 2024

Okay so it's a bit better with npm run dev vs preview: now I have the main page. Do I have pre existing/default credentials?

If not, trying to register fails with:

image

from classroomio.

rotimi-best avatar rotimi-best commented on May 18, 2024

Oh, glad it worked. Yeah npm run dev is the command to get the frontend running.

@cannarron is actually working on a contributibution that adds dummy data into the db after running migrations. This gives you test users and courses to start interacting with.

You can't register (NetworkError when attempting to fetch resource) because you don't have the database layer up and running. Can you follow the guide in the README to setup supabase locally and you can add that to your environment variables.

With this, registration should go smoothly.

from classroomio.

olivierlambert avatar olivierlambert commented on May 18, 2024

I did install/deploy supabase (on another machine where I can run Docker), so it's running and I can reach it. But maybe you have a script somewhere on your own doing something I didn't?

edit: ah, I need to open some ports in the firewall.

from classroomio.

olivierlambert avatar olivierlambert commented on May 18, 2024

So I'm not sure exactly about the configuration between Supabase and Dashboard app. I followed the Supabase self-hosted guide and configured to listen on an IP that can be reach now from the VM running ClassroomIO.

But it's a bit confusing about which service/port I should use.

For example, on Classroom, I have:

  • PUBLIC_SUPABASE_URL : I don't know which variable it matches on Supabase side. Is it SUPABASE_PUBLIC_URL on supabase side?
  • PUBLIC_SUPABASE_BUCKET_URL: no similar variable on Supabase side.

edit: or are you accessing everything via Kong? Then it would be KONG_HTTP_PORT

from classroomio.

olivierlambert avatar olivierlambert commented on May 18, 2024

Ah I think I start to understand the issue. Dashboard app is behind an HTTPS frontend (Nginx doing SSL termination) and Supabase is on HTTP. Mixed content is blocked by the browser.

However in HTTPS, I only have self signed certificates for Superbase, and it seems to block the request from Dashboard app.

I wonder if it's possible to tell Dashboard app to ignore self-signed certs.

from classroomio.

rotimi-best avatar rotimi-best commented on May 18, 2024

Hi @olivierlambert, will try to answer all your questions.

Supabase environment variables

  1. PUBLIC_SUPABASE_PROJECT_REF
    image

  2. PUBLIC_SUPABASE_URL and PUBLIC_SUPABASE_ANON_KEY

image

  1. PUBLIC_SUPABASE_BUCKET_URL: I just realised it isn't used at all so I just created a PR to completely remove it.
    #129

from classroomio.

rotimi-best avatar rotimi-best commented on May 18, 2024

I wonder if it's possible to tell Dashboard app to ignore self-signed certs.

@olivierlambert I am not sure tbh. I haven't worked with self signed certificates. It seems to me that HTTPS/HTTP issue is a browser constraint and not one that can be controlled from a web app

from classroomio.

Related Issues (20)

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.