Improving Self-Hosting and Removing 3rd Party dependencies. (#4513)
* fix: Library Header layout shift * Bump Github Actions versions. * Self-Hosting Changes * Fix Minio Environment Variable * Just make pdfs successful, due to lack of PDFHandler * Fix issue where flag was set wrong * Added an NGINX Example file * Add some documentation for self-hosting via Docker Compose * Make some adjustments to Puppeteer due to failing sites. * adjust timings * Add start of Mail Service * Fix Docker Files * More email service stuff * Add Guide to use Zapier for Email-Importing. * Ensure that if no env is provided it uses the old email settings * Add some instructions for self-hosted email * Add SNS Endpoints for Mail Watcher * Add steps and functionality for using SES and SNS for email * Uncomment a few jobs. * Added option for Firefox for parser. Was having issues with Chromium on Docker. * Add missing space. Co-authored-by: Russ Taylor <729694+russtaylor@users.noreply.github.com> * Fix some wording on the Guide * update browser extension to handle self-hosted instances * add slight documentation to options page * Fix MV * Do raw handlers for Medium * Fix images in Medium * Update self-hosting/GUIDE.md Co-authored-by: Mike Baker <1426795+mbaker3@users.noreply.github.com> * Update Guide with other variables * Add The Verge to JS-less handlers * Update regex and image-proxy * Update self-hosting/nginx/nginx.conf Co-authored-by: Mike Baker <1426795+mbaker3@users.noreply.github.com> * Update regex and image-proxy * Update self-hosting/docker-compose/docker-compose.yml Co-authored-by: Mike Baker <1426795+mbaker3@users.noreply.github.com> * Fix Minio for Export * Merge to main * Update GUIDE with newer NGINX * Update nginx config to include api/save route * Enable Native PDF View for PDFS * Enable Native PDF View for PDFS * feat:lover packages test * feat:working build * feat:alpine build * docs:api dockerfile docs * Write a PDF.js wrapper to replace pspdfkit * Revert changes for replication, set settings to have default mode * build folder got removed due to gitignore on pdf * Add Box shadow to pdf pages * Add Toggle for Progress in PDFS, enabled native viewer toggle * Update node version to LTS * Update node version to LTS * Fix Linting issues * Fix Linting issues * Make env variable nullable * Add touchend listener for mobile * Make changes to PDF for mobile * fix(android): change serverUrl to selfhosted first * feat:2 stage alpine content fetch * feat:separated start script * fix:changed to node 22 * Add back youtube functionality and add guide * trigger build * Fix cache issue on YouTube * Allow empty AWS_S3_ENDPOINT * Allow empty AWS_S3_ENDPOINT * Add GCHR for all images * Add GCHR For self hosting. * Add GCHR For self hosting. * Test prebuilt. * Test prebuilt * Test prebuilt... * Fix web image * Remove Web Image (For now) * Move docker-compose to images * Move docker-compose files to correct locations * Remove the need for ARGS * Update packages, and Typescript versions * Fix * Fix issues with build on Web * Correct push * Fix Linting issues * Fix Trace import * Add missing types * Fix Tasks * Add information into guide about self-build * Fix issues with PDF Viewer --------- Co-authored-by: keumky2 <keumky2@woowahan.com> Co-authored-by: William Theaker <wtheaker@nvidia.com> Co-authored-by: Russ Taylor <729694+russtaylor@users.noreply.github.com> Co-authored-by: David Adams <david@dadams2.com> Co-authored-by: Mike Baker <1426795+mbaker3@users.noreply.github.com> Co-authored-by: m1xxos <66390094+m1xxos@users.noreply.github.com> Co-authored-by: Adil <mr.adil777@gmail.com>
This commit is contained in:
@ -10,6 +10,7 @@ import app.omnivore.omnivore.R
|
||||
import app.omnivore.omnivore.core.data.DataService
|
||||
import app.omnivore.omnivore.core.datastore.DatastoreRepository
|
||||
import app.omnivore.omnivore.core.datastore.omnivoreAuthToken
|
||||
import app.omnivore.omnivore.core.datastore.omnivoreSelfHostedApiServer
|
||||
import app.omnivore.omnivore.graphql.generated.UpdatePageMutation
|
||||
import app.omnivore.omnivore.graphql.generated.type.UpdatePageInput
|
||||
import app.omnivore.omnivore.utils.Constants
|
||||
@ -48,6 +49,12 @@ class EditInfoViewModel @Inject constructor(
|
||||
datastoreRepo.getString(omnivoreAuthToken)
|
||||
}
|
||||
|
||||
fun baseUrl() = runBlocking {
|
||||
datastoreRepo.getString(omnivoreSelfHostedApiServer) ?: Constants.apiURL
|
||||
}
|
||||
|
||||
private fun serverUrl() = "${baseUrl()}/api/graphql"
|
||||
|
||||
fun editInfo(itemId: String, title: String, author: String?, description: String?) {
|
||||
viewModelScope.launch {
|
||||
isLoading = true
|
||||
@ -62,7 +69,7 @@ class EditInfoViewModel @Inject constructor(
|
||||
}
|
||||
|
||||
val apolloClient = ApolloClient.Builder()
|
||||
.serverUrl("${Constants.apiURL}/api/graphql")
|
||||
.serverUrl(serverUrl())
|
||||
.addHttpHeader("Authorization", value = authToken)
|
||||
.build()
|
||||
|
||||
|
||||
@ -176,6 +176,12 @@ class OnboardingViewModel @Inject constructor(
|
||||
resetPendingEmailUserCreds()
|
||||
}
|
||||
|
||||
fun baseUrl() = runBlocking {
|
||||
datastoreRepository.getString(omnivoreSelfHostedApiServer) ?: Constants.apiURL
|
||||
}
|
||||
|
||||
private fun serverUrl() = "${baseUrl()}/api/graphql"
|
||||
|
||||
fun validateUsername(potentialUsername: String) {
|
||||
validateUsernameJob?.cancel()
|
||||
|
||||
@ -209,7 +215,7 @@ class OnboardingViewModel @Inject constructor(
|
||||
}
|
||||
|
||||
val apolloClient =
|
||||
ApolloClient.Builder().serverUrl("${Constants.apiURL}/api/graphql").build()
|
||||
ApolloClient.Builder().serverUrl(serverUrl()).build()
|
||||
|
||||
try {
|
||||
val response = apolloClient.query(
|
||||
|
||||
@ -16,6 +16,7 @@ import androidx.work.WorkerParameters
|
||||
import app.omnivore.omnivore.R
|
||||
import app.omnivore.omnivore.core.datastore.DatastoreRepository
|
||||
import app.omnivore.omnivore.core.datastore.omnivoreAuthToken
|
||||
import app.omnivore.omnivore.core.datastore.omnivoreSelfHostedApiServer
|
||||
import app.omnivore.omnivore.graphql.generated.SaveUrlMutation
|
||||
import app.omnivore.omnivore.graphql.generated.type.SaveUrlInput
|
||||
import app.omnivore.omnivore.utils.Constants
|
||||
@ -59,11 +60,16 @@ class SaveURLWorker @AssistedInject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun baseUrl() =
|
||||
datastoreRepository.getString(omnivoreSelfHostedApiServer) ?: Constants.apiURL
|
||||
|
||||
private suspend fun serverUrl() = "${baseUrl()}/api/graphql"
|
||||
|
||||
private suspend fun saveURL(url: String): Boolean {
|
||||
val authToken = datastoreRepository.getString(omnivoreAuthToken) ?: return false
|
||||
|
||||
val apolloClient = ApolloClient.Builder()
|
||||
.serverUrl("${Constants.apiURL}/api/graphql")
|
||||
.serverUrl(serverUrl())
|
||||
.addHttpHeader("Authorization", value = authToken)
|
||||
.build()
|
||||
|
||||
|
||||
@ -11,6 +11,7 @@ import androidx.lifecycle.viewModelScope
|
||||
import app.omnivore.omnivore.R
|
||||
import app.omnivore.omnivore.core.datastore.DatastoreRepository
|
||||
import app.omnivore.omnivore.core.datastore.omnivoreAuthToken
|
||||
import app.omnivore.omnivore.core.datastore.omnivoreSelfHostedApiServer
|
||||
import app.omnivore.omnivore.graphql.generated.SaveUrlMutation
|
||||
import app.omnivore.omnivore.graphql.generated.type.SaveUrlInput
|
||||
import app.omnivore.omnivore.utils.Constants
|
||||
@ -71,6 +72,12 @@ class SaveViewModel @Inject constructor(
|
||||
return null
|
||||
}
|
||||
|
||||
fun baseUrl() = runBlocking {
|
||||
datastoreRepo.getString(omnivoreSelfHostedApiServer) ?: Constants.apiURL
|
||||
}
|
||||
|
||||
private fun serverUrl() = "${baseUrl()}/api/graphql"
|
||||
|
||||
fun saveURL(url: String) {
|
||||
viewModelScope.launch {
|
||||
isLoading = true
|
||||
@ -86,7 +93,7 @@ class SaveViewModel @Inject constructor(
|
||||
}
|
||||
|
||||
val apolloClient = ApolloClient.Builder()
|
||||
.serverUrl("${Constants.apiURL}/api/graphql")
|
||||
.serverUrl(serverUrl())
|
||||
.addHttpHeader("Authorization", value = authToken)
|
||||
.build()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user