Orcpub / orcpub

Code for Dungeon Master's Vault Community Edition
https://www.dungeonmastersvault.com/
Eclipse Public License 2.0
210 stars 105 forks source link

[Bug] Docker Doesn't Boot #528

Closed hakarune closed 3 years ago

hakarune commented 3 years ago

Describe the bug Add to Portainer all the variables needed and dockerhub pull reqs, create key and cert, but fails to load

docker YML:

 orcpub:
    image: orcpub/orcpub:latest
    network_mode: bridge
    container_name: orcpub
    environment:
        - EMAIL_SERVER_URL='smtp.gmail.com' # DNS name of your smtp server
        - EMAIL_ACCESS_KEY='email@gmail.com' # User for the mail server
        - EMAIL_SECRET_KEY='passwd' # Password for the user
        - EMAIL_SERVER_PORT=467 # Mail server port
        - EMAIL_FROM_ADDRESS='email@gmail.com' # Email address to send from, will default to 'no-reply@orcpub.com'
        - EMAIL_ERRORS_TO='email@gmail.com' # Email address that errors will be sent to
        - EMAIL_SSL='true' # Should SSL be used? Gmail requires this.
        - EMAIL_TLS='true' # Should TLS be used? 
        - DATOMIC_URL=datomic:free://datomic:4334/orcpub # Url for the database
        - ADMIN_PASSWORD=passwd1 #The datomic admin password (should be diffrent than the DATOMIC_PASSWORD)
        - DATOMIC_PASSWORD=passwd #The datomic application password
        - SIGNATURE='custom_hascode' # The Secret used to hash your password in the browser, 20+ characters recommended
        - PUID=1000
        - PGID=100
        - TZ=America/Los_Angeles
    volumes:
        - /home/.config/OrcPub/nginx.conf:/etc/nginx/conf.d/default.conf
        - /home/.config/OrcPub/snakeoil.crt:/etc/nginx/snakeoil.crt
        - /home/.config/OrcPub/snakeoil.key:/etc/nginx/snakeoil.key
        - /sharedfolders/Programs/OrcPub/homebrew/:/usr/share/nginx/html/homebrew/
        - /sharedfolders/Programs/OrcPub/data/:/data
        - /home/.config/OrcPub:/config
        - /sharedfolders/Programs/logs/OrcPub:/logs
    ports:
        - 587:587
        - 4334:4334
        - 4335:4335
        - 4336:4336
        - 89:80
        - 447:443
    restart: unless-stopped

Error Log:

`
    at clojure.core$deref.invokeStatic(core.clj:2320)

    at clojure.core$deref.invoke(core.clj:2306)

    at datomic.coordination$lookup_transactor_endpoint$fn__5953.invoke(coordination.clj:129)

    at datomic.coordination$lookup_transactor_endpoint.invokeStatic(coordination.clj:127)

    at datomic.coordination$lookup_transactor_endpoint.invoke(coordination.clj:124)

    at datomic.coordination$lookup_compatible_transactor_endpoint.invokeStatic(coordination.clj:145)

    at datomic.coordination$lookup_compatible_transactor_endpoint.invoke(coordination.clj:143)

    at datomic.peer$send_admin_request$fn__8430.invoke(peer.clj:758)

    at datomic.peer$send_admin_request.invokeStatic(peer.clj:752)

    at datomic.peer$send_admin_request.invoke(peer.clj:750)

    at datomic.peer$create_database.invokeStatic(peer.clj:772)

    at datomic.peer$create_database.invoke(peer.clj:762)

    at datomic.peer$create_database.invokeStatic(peer.clj:764)

    at datomic.peer$create_database.invoke(peer.clj:762)

    at clojure.lang.Var.invoke(Var.java:384)

    at datomic.Peer.createDatabase(Peer.java:117)

    at datomic.api$create_database.invokeStatic(api.clj:19)

    at datomic.api$create_database.invoke(api.clj:17)

    at orcpub.datomic.DatomicComponent.start(datomic.clj:12)

    at com.stuartsierra.component$fn__562$G__556__564.invoke(component.cljc:5)

    at com.stuartsierra.component$fn__562$G__555__567.invoke(component.cljc:5)

    at clojure.lang.AFn.applyToHelper(AFn.java:154)

    at clojure.lang.AFn.applyTo(AFn.java:144)

    at clojure.lang.Var.applyTo(Var.java:705)

    at clojure.core$apply.invokeStatic(core.clj:667)

    at clojure.core$apply.invoke(core.clj:660)

    at com.stuartsierra.component$try_action.invokeStatic(component.cljc:117)
      
    ... 18 more

Caused by: org.h2.jdbc.JdbcSQLException: Connection is broken: "java.net.UnknownHostException: datomic: Name does not resolve: datomic:4335" [90067-171]

    at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)

    at org.h2.message.DbException.get(DbException.java:158)

    at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:399)

    at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:287)

    at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:109)

    at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)

    at org.h2.Driver.connect(Driver.java:72)

    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:266)

    at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:175)

    at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:684)

    at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:616)

    at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:479)

    at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:135)

    at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:114)

    at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:101)
WARNING: seqable? already refers to: #'clojure.core/seqable? in namespace: clojure.core.incubator, being replaced by: #'clojure.core.incubator/seqable?
WARNING: requiring-resolve already refers to: #'clojure.core/requiring-resolve in namespace: datomic.common, being replaced by: #'datomic.common/requiring-resolve
[clojure-agent-send-off-pool-0] INFO datomic.kv-cluster - {:event :kv-cluster/retry, :StorageGetBackoffMsec 0, :attempts 0, :max-retries 20, :cause "java.net.UnknownHostException", :pid 1, :tid 9}

[clojure-agent-send-off-pool-0] INFO datomic.kv-cluster - {:event :kv-cluster/retry, :StorageGetBackoffMsec 50, :attempts 1, :max-retries 20, :cause "java.net.UnknownHostException", :pid 1, :tid 9}

[clojure-agent-send-off-pool-0] INFO datomic.kv-cluster - {:event :kv-cluster/retry, :StorageGetBackoffMsec 100, :attempts 2, :max-retries 20, :cause "java.net.UnknownHostException", :pid 1, :tid 9}

[clojure-agent-send-off-pool-0] INFO datomic.kv-cluster - {:event :kv-cluster/retry, :StorageGetBackoffMsec 150, :attempts 3, :max-retries 20, :cause "java.net.UnknownHostException", :pid 1, :tid 9}

[clojure-agent-send-off-pool-0] INFO datomic.kv-cluster - {:event :kv-cluster/retry, :StorageGetBackoffMsec 200, :attempts 4, :max-retries 20, :cause "java.net.UnknownHostException", :pid 1, :tid 9}

[clojure-agent-send-off-pool-0] INFO datomic.kv-cluster - {:event :kv-cluster/retry, :StorageGetBackoffMsec 250, :attempts 5, :max-retries 20, :cause "java.net.UnknownHostException", :pid 1, :tid 9}

[clojure-agent-send-off-pool-0] INFO datomic.kv-cluster - {:event :kv-cluster/retry, :StorageGetBackoffMsec 300, :attempts 6, :max-retries 20, :cause "java.net.UnknownHostException", :pid 1, :tid 9}

[clojure-agent-send-off-pool-0] INFO datomic.kv-cluster - {:event :kv-cluster/retry, :StorageGetBackoffMsec 350, :attempts 7, :max-retries 20, :cause "java.net.UnknownHostException", :pid 1, :tid 9}

[clojure-agent-send-off-pool-0] INFO datomic.kv-cluster - {:event :kv-cluster/retry, :StorageGetBackoffMsec 400, :attempts 8, :max-retries 20, :cause "java.net.UnknownHostException", :pid 1, :tid 9}

[clojure-agent-send-off-pool-0] INFO datomic.kv-cluster - {:event :kv-cluster/retry, :StorageGetBackoffMsec 450, :attempts 9, :max-retries 20, :cause "java.net.UnknownHostException", :pid 1, :tid 9}

[clojure-agent-send-off-pool-0] INFO datomic.kv-cluster - {:event :kv-cluster/retry, :StorageGetBackoffMsec 500, :attempts 10, :max-retries 20, :cause "java.net.UnknownHostException", :pid 1, :tid 9}

[clojure-agent-send-off-pool-0] INFO datomic.kv-cluster - {:event :kv-cluster/retry, :StorageGetBackoffMsec 550, :attempts 11, :max-retries 20, :cause "java.net.UnknownHostException", :pid 1, :tid 9}

[clojure-agent-send-off-pool-0] INFO datomic.kv-cluster - {:event :kv-cluster/retry, :StorageGetBackoffMsec 600, :attempts 12, :max-retries 20, :cause "java.net.UnknownHostException", :pid 1, :tid 9}

[clojure-agent-send-off-pool-0] INFO datomic.kv-cluster - {:event :kv-cluster/retry, :StorageGetBackoffMsec 650, :attempts 13, :max-retries 20, :cause "java.net.UnknownHostException", :pid 1, :tid 9}

[clojure-agent-send-off-pool-0] INFO datomic.kv-cluster - {:event :kv-cluster/retry, :StorageGetBackoffMsec 700, :attempts 14, :max-retries 20, :cause "java.net.UnknownHostException", :pid 1, :tid 9}

[clojure-agent-send-off-pool-0] INFO datomic.kv-cluster - {:event :kv-cluster/retry, :StorageGetBackoffMsec 750, :attempts 15, :max-retries 20, :cause "java.net.UnknownHostException", :pid 1, :tid 9}

[clojure-agent-send-off-pool-0] INFO datomic.kv-cluster - {:event :kv-cluster/retry, :StorageGetBackoffMsec 800, :attempts 16, :max-retries 20, :cause "java.net.UnknownHostException", :pid 1, :tid 9}

[clojure-agent-send-off-pool-0] INFO datomic.kv-cluster - {:event :kv-cluster/retry, :StorageGetBackoffMsec 850, :attempts 17, :max-retries 20, :cause "java.net.UnknownHostException", :pid 1, :tid 9}

WARNING: seqable? already refers to: #'clojure.core/seqable? in namespace: clojure.core.incubator, being replaced by: #'clojure.core.incubator/seqable?

    at clojure.lang.ArraySeq.reduce(ArraySeq.java:111)

    at clojure.core$reduce.invokeStatic(core.clj:6827)

    at clojure.core$reduce.invoke(core.clj:6810)

    at com.stuartsierra.component$update_system.invokeStatic(component.cljc:135)

    at com.stuartsierra.component$update_system.doInvoke(component.cljc:129)

    at clojure.lang.RestFn.invoke(RestFn.java:445)

    at com.stuartsierra.component$start_system.invokeStatic(component.cljc:163)

    at com.stuartsierra.component$start_system.invoke(component.cljc:155)

    at com.stuartsierra.component$start_system.invokeStatic(component.cljc:161)

    at com.stuartsierra.component$start_system.invoke(component.cljc:155)

    at com.stuartsierra.component.SystemMap.start(component.cljc:178)

    at orcpub.server$_main.invokeStatic(server.clj:7)

    at orcpub.server$_main.invoke(server.clj:6)

    at clojure.lang.AFn.applyToHelper(AFn.java:152)

    at clojure.lang.AFn.applyTo(AFn.java:144)

    at orcpub.server.main(Unknown Source)

Caused by: java.util.concurrent.ExecutionException: org.h2.jdbc.JdbcSQLException: Connection is broken: "java.net.UnknownHostException: datomic: Name does not resolve: datomic:4335" [90067-171]

    at java.util.concurrent.FutureTask.report(FutureTask.java:122)

    at java.util.concurrent.FutureTask.get(FutureTask.java:192)

    at clojure.core$deref_future.invokeStatic(core.clj:2300)

    at clojure.core$future_call$reify__8439.deref(core.clj:6974)

    at clojure.core$deref.invokeStatic(core.clj:2320)

    at clojure.core$deref.invoke(core.clj:2306)

    at datomic.coordination$lookup_transactor_endpoint$fn__5953.invoke(coordination.clj:129)

    at datomic.coordination$lookup_transactor_endpoint.invokeStatic(coordination.clj:127)

    at datomic.coordination$lookup_transactor_endpoint.invoke(coordination.clj:124)

    at datomic.coordination$lookup_compatible_transactor_endpoint.invokeStatic(coordination.clj:145)

    at datomic.coordination$lookup_compatible_transactor_endpoint.invoke(coordination.clj:143)

    at datomic.peer$send_admin_request$fn__8430.invoke(peer.clj:758)

    at datomic.peer$send_admin_request.invokeStatic(peer.clj:752)

    at datomic.peer$send_admin_request.invoke(peer.clj:750)

    at datomic.peer$create_database.invokeStatic(peer.clj:772)

    at datomic.peer$create_database.invoke(peer.clj:762)

    at datomic.peer$create_database.invokeStatic(peer.clj:764)

    at datomic.peer$create_database.invoke(peer.clj:762)

    at clojure.lang.Var.invoke(Var.java:384)

    at datomic.Peer.createDatabase(Peer.java:117)

    at datomic.api$create_database.invokeStatic(api.clj:19)

    at datomic.api$create_database.invoke(api.clj:17)

    at orcpub.datomic.DatomicComponent.start(datomic.clj:12)

    at com.stuartsierra.component$fn__562$G__556__564.invoke(component.cljc:5)

    at com.stuartsierra.component$fn__562$G__555__567.invoke(component.cljc:5)

    at clojure.lang.AFn.applyToHelper(AFn.java:154)

    at clojure.lang.AFn.applyTo(AFn.java:144)

    at clojure.lang.Var.applyTo(Var.java:705)

    at clojure.core$apply.invokeStatic(core.clj:667)

    at clojure.core$apply.invoke(core.clj:660)

    at com.stuartsierra.component$try_action.invokeStatic(component.cljc:117)
      
    ... 18 more

Caused by: org.h2.jdbc.JdbcSQLException: Connection is broken: "java.net.UnknownHostException: datomic: Name does not resolve: datomic:4335" [90067-171]

    at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)

    at org.h2.message.DbException.get(DbException.java:158)

    at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:399)

    at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:287)

    at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:109)

    at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)

    at org.h2.Driver.connect(Driver.java:72)

    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:266)

    at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:175)

    at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:684)

    at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:616)

    at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:479)

    at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:135)

    at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:114)

    at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:101)

    at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:125)

    at datomic.sql$connect.invokeStatic(sql.clj:16)

    at datomic.sql$connect.invoke(sql.clj:13)

    at datomic.sql$select.invokeStatic(sql.clj:77)

    at datomic.sql$select.invoke(sql.clj:75)

    at datomic.kv_sql.KVSql.get(kv_sql.clj:60)

    at datomic.kv_cluster.KVCluster$fn__3221$fn__3224$fn__3225.invoke(kv_cluster.clj:225)

    at datomic.kv_cluster$retry_fn$fn__3136.invoke(kv_cluster.clj:82)

    at datomic.kv_cluster$retry_fn.invokeStatic(kv_cluster.clj:82)

    at datomic.kv_cluster$retry_fn.invoke(kv_cluster.clj:57)

    at clojure.lang.AFn.applyToHelper(AFn.java:178)

    at clojure.lang.AFn.applyTo(AFn.java:144)

    at clojure.core$apply.invokeStatic(core.clj:671)

    at clojure.core$partial$fn__5830.doInvoke(core.clj:2643)

    at clojure.lang.RestFn.invoke(RestFn.java:421)

    at datomic.kv_cluster.KVCluster$fn__3221$fn__3224.invoke(kv_cluster.clj:223)

    at datomic.kv_cluster.KVCluster$fn__3221.invoke(kv_cluster.clj:221)

    at clojure.core$binding_conveyor_fn$fn__5739.invoke(core.clj:2030)

    at clojure.lang.AFn.call(AFn.java:18)

    at java.util.concurrent.FutureTask.run(FutureTask.java:266)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

    at java.lang.Thread.run(Thread.java:748)

Caused by: java.net.UnknownHostException: datomic: Name does not resolve

    at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)

    at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:929)

    at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1324)

    at java.net.InetAddress.getAllByName0(InetAddress.java:1277)

    at java.net.InetAddress.getAllByName(InetAddress.java:1193)

    at java.net.InetAddress.getAllByName(InetAddress.java:1127)

    at java.net.InetAddress.getByName(InetAddress.java:1077)

    at org.h2.util.NetUtils.createSocket(NetUtils.java:99)

    at org.h2.engine.SessionRemote.initTransfer(SessionRemote.java:93)

    at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:395)
      
    ... 35 more
`
codeGlaze commented 3 years ago

@datdamnzotz is our resident docker wizard and we can (typically) offer better troubleshooting over on the discord server just because a back and forth dialogue is easier even if we're not all on at the same time. The docker should be handling all the datomic setup for you... so I'm not sure why it's throwing an error.

codeGlaze commented 3 years ago

@hakarune In your example YAML file you omitted the password from the Datomic URL

Your example file: - DATOMIC_URL=datomic:free://datomic:4334/orcpub

The project example: DATOMIC_URL: datomic:free://datomic:4334/orcpub?password=yourpassword

yourpassword should match the DATOMIC_PASSWORD

datdamnzotz commented 3 years ago

Post your complete docker compose and we might be able to help you -

datomic: Name does not resolve: datomic:4335"

points to the datomic container isn't available via the network or simply isn't running.

Refer to https://github.com/Orcpub/orcpub/wiki/How-To:-Run-Orcpub-Docker-and-Traefik-2.x https://github.com/Orcpub/orcpub/blob/develop/README.md and https://github.com/Orcpub/orcpub/blob/develop/docker-compose.yaml

hakarune commented 3 years ago

@hakarune In your example YAML file you omitted the password from the Datomic URL

Your example file: - DATOMIC_URL=datomic:free://datomic:4334/orcpub

The project example: DATOMIC_URL: datomic:free://datomic:4334/orcpub?password=yourpassword

yourpassword should match the DATOMIC_PASSWORD

it was giving the error of invalid character with the "?" in the URL

hakarune commented 3 years ago

Post your complete docker compose and we might be able to help you -

datomic: Name does not resolve: datomic:4335"

points to the datomic container isn't available via the network or simply isn't running.

Refer to https://github.com/Orcpub/orcpub/wiki/How-To:-Run-Orcpub-Docker-and-Traefik-2.x https://github.com/Orcpub/orcpub/blob/develop/README.md and https://github.com/Orcpub/orcpub/blob/develop/docker-compose.yaml

That is the whole compose file...just omitted login infos Isn't DATOMIC part of the docker? I thought it was a full-package docker that has everything. Do I need add Datomic to the compose and run it as a separate docker for Datomic?

datdamnzotz commented 3 years ago

Well THARRRs your problem. Your missing the database container (and web for that matter) Datomic is the database it needs a section like there is in the example found here under 'datomic' You'll need the 'web' container as well. https://github.com/Orcpub/orcpub/blob/develop/docker-compose.yaml <- this is not a copy paste into Portainer as you have to create the networks first.

It is really intended to be used from the docker cmd line non-swarm mode.

-OR-

You can ditch ngnix container if you want/already have traefix https://github.com/Orcpub/orcpub/wiki/How-To:-Run-Orcpub-Docker-and-Traefik-2.x <-- this is just a copy paste into Portainer as the networks are defined at the bottom.

hakarune commented 3 years ago

Well THARRRs your problem. Your missing the database container (and web for that matter) Datomic is the database it needs a section like there is in the example found here under 'datomic' You'll need the 'web' container as well. https://github.com/Orcpub/orcpub/blob/develop/docker-compose.yaml <- this is not a copy paste into Portainer as you have to create the networks first.

It is really intended to be used from the docker cmd line non-swarm mode.

-OR-

You can ditch ngnix container if you want/already have traefix https://github.com/Orcpub/orcpub/wiki/How-To:-Run-Orcpub-Docker-and-Traefik-2.x <-- this is just a copy paste into Portainer as the networks are defined at the bottom.

Thanks a lot. I went with your first post and it is working from what I can see from the logs and the OrcPub briefly loads as well. So that is awesome and thank you for the help.

Unfortunately, now it's having an issue related to HTTPS. Every time I load the page it pops up, then quickly redirects to HTTP and gives me ERR_SSL_PROTOCOL_ERROR page. I created the certs and everything according to the instructions, I also tried to remove the 301 redirect from nginx.conf, but still SSL error....

datdamnzotz commented 3 years ago

Best guess, since you didn't post your current config - is a permissions problem on the certificate files themselves. Your docker log's of the web (nginx) container are going to have the meaningful error msg.

datdamnzotz commented 3 years ago

https://github.com/Orcpub/orcpub/wiki/How-to-Ask-for-Help

hakarune commented 3 years ago

Best guess, since you didn't post your current config - is a permissions problem on the certificate files themselves. Your docker log's of the web (nginx) container are going to have the meaningful error msg.

Sorry, I didn't post the new YML. Forgot to include it, added it below. I set the permissions to 775 on both the crt & key and running each instance as the owner of the files. Both OrcPub and Web have a couple errors, that don't seem that big.

Portainer YML Stack:

version: '3'
services:
 orcpub:
    image: orcpub/orcpub:latest
    network_mode: "service:datomic"
    container_name: orcpub
    environment:
        - PORT=8890
        - EMAIL_SERVER_URL='smtp.gmail.com' # DNS name of your smtp server
        - EMAIL_ACCESS_KEY='email@gmail.com' # User for the mail server
        - EMAIL_SECRET_KEY='passwd' # Password for the user
        - EMAIL_SERVER_PORT=467 # Mail server port
        - EMAIL_FROM_ADDRESS='email@gmail.com' # Email address to send from, will default to 'no-reply@orcpub.com'
        - EMAIL_ERRORS_TO='email@gmail.com' # Email address that errors will be sent to
        - EMAIL_SSL='true' # Should SSL be used? Gmail requires this.
        - EMAIL_TLS='true' # Should TLS be used? 
        - DATOMIC_URL=datomic:free://datomic:4334/orcpub?password=passwd3 # Url for the database
        - ADMIN_PASSWORD=passwd2 #The datomic admin password (should be diffrent than the DATOMIC_PASSWORD)
        - DATOMIC_PASSWORD=passwd3 #The datomic application password
        - SIGNATURE='keycode' # The Secret used to hash your password in the browser, 20+ characters recommended
        - PUID=1000
        - PGID=100
        - TZ=America/Los_Angeles
    volumes:
        - /home/.config/OrcPub/nginx.conf:/etc/nginx/conf.d/default.conf
        - /home/.config/OrcPub/snakeoil.crt:/etc/nginx/snakeoil.crt
        - /home/.config/OrcPub/snakeoil.key:/etc/nginx/snakeoil.key
        - /sharedfolders/Veritas/Programs/OrcPub/homebrew/:/usr/share/nginx/html/homebrew/
        - /sharedfolders/Veritas/Programs/OrcPub/data/:/data
        - /home/.config/OrcPub:/config
        - /sharedfolders/Veritas/Programs/logs/OrcPub:/logs
    restart: unless-stopped
    depends_on:
      - datomic

 datomic:
    image: orcpub/datomic:latest
    environment:
        - ADMIN_PASSWORD=passwd2
       # Must match the <change this> in the DATOMIC_URL above.
        - DATOMIC_PASSWORD=passwd3
    volumes:
        - /sharedfolders/Veritas/Programs/OrcPub/data/:/data
        - /sharedfolders/Veritas/Programs/logs/datomic:/logs
        - /home/.config/datomic:/config
    ports:
        - 587:587
        - 4334:4334
        - 4335:4335
        - 4336:4336
        - 89:80
        - 8890:8890
        - 447:443
    restart:  unless-stopped

 web:
    image: nginx:alpine
    network_mode: "service:datomic"
    environment:
        - PUID=1000
        - PGID=100
        - TZ=America/Los_Angeles
    volumes:
        - /home/.config/OrcPub/nginx.conf:/etc/nginx/conf.d/default.conf
        - /home/.config/OrcPub/snakeoil.crt:/etc/nginx/snakeoil.crt
        - /home/.config/OrcPub/snakeoil.key:/etc/nginx/snakeoil.key
        - /sharedfolders/Veritas/Programs/OrcPub/homebrew/:/usr/share/nginx/html/homebrew/
    restart:  unless-stopped

 dndgenerator:
    image: orcpub/dndgenerator:latest
    network_mode: "service:datomic"
    environment:
        - PUID=1000
        - PGID=100
        - TZ=America/Los_Angeles
    volumes:
        - /sharedfolders/Veritas/Programs/logs/datomic:/logs
        - /home/.config/datomic:/config
    restart:  unless-stopped

OrcPub Error Log:

[qtp1027017168-42] WARN org.eclipse.jetty.http.HttpParser - bad HTTP parsed: 400 Illegal character 0x16 for HttpChannelOverHttp@4d4c8754{r=0,c=false,a=IDLE,uri=null}
[qtp1027017168-40] INFO io.pedestal.http - {:msg "GET /user", :line 78}
[qtp1027017168-41] INFO io.pedestal.http - {:msg "GET /", :line 78}
[qtp1027017168-38] WARN org.eclipse.jetty.http.HttpParser - Illegal character 0x16 in state=START for buffer HeapByteBuffer@73825517[p=1,l=517,c=8192,r=516]={\x16<<<\x03\x01\x02\x00\x01\x00\x01\xFc\x03\x03\x95\x18\xBc)\ro\x06...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}

Web Error Log:

nginx: [emerg] host not found in upstream "orcpub" in /etc/nginx/conf.d/default.conf:20
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf differs from the packaged version
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
datdamnzotz commented 3 years ago

Not sure why you aren't just git cloning our repo and editing the given https://github.com/Orcpub/orcpub/blob/develop/docker-compose.yaml

For your orcpub container you don't need any volumes make it like:

 orcpub:
    image: orcpub/orcpub:latest
    environment:
        - PORT=8890
        - EMAIL_SERVER_URL='smtp.gmail.com' # DNS name of your smtp server
        - EMAIL_ACCESS_KEY='email@gmail.com' # User for the mail server
        - EMAIL_SECRET_KEY='passwd' # Password for the user
        - EMAIL_SERVER_PORT=467 # Mail server port
        - EMAIL_FROM_ADDRESS='email@gmail.com' # Email address to send from, will default to 'no-reply@orcpub.com'
        - EMAIL_ERRORS_TO='email@gmail.com' # Email address that errors will be sent to
        - EMAIL_SSL='true' # Should SSL be used? Gmail requires this.
        - EMAIL_TLS='true' # Should TLS be used? 
        - DATOMIC_URL=datomic:free://datomic:4334/orcpub?password=passwd3 # Url for the database
        - ADMIN_PASSWORD=passwd2 #The datomic admin password (should be diffrent than the DATOMIC_PASSWORD)
        - DATOMIC_PASSWORD=passwd3 #The datomic application password
        - SIGNATURE='keycode' # The Secret used to hash your password in the browser, 20+ characters recommended
        - PUID=1000
        - PGID=100
        - TZ=America/Los_Angeles
    restart: unless-stopped
    depends_on:
      - datomic
    networks:
      - orcpub-network

For your datomic container you don't need ports Might want to add a backup volume

 datomic:
    image: orcpub/datomic:latest
    environment:
        - ADMIN_PASSWORD=passwd2
       # Must match the <change this> in the DATOMIC_URL above.
        - DATOMIC_PASSWORD=passwd3
    volumes:
        - /sharedfolders/Veritas/Programs/OrcPub/data/:/data
        - /sharedfolders/Veritas/Programs/logs/datomic:/logs
        - /home/.config/datomic:/config
      # Backup directory - set this to a path on the host
      # To backup the orcpub database put this in a @hourly crontab on the host.
      # container=$(docker ps -aqf "name=^orcpub_datomic")
      # docker exec $container /datomic/bin/datomic -Xmx4g -Xms4g backup-db datomic:free://datomic:4334/orcpub?password=<change this> file:/backups/datomic/
      - /var/backups:/backups
    restart:  unless-stopped
    networks:
      - orcpub-network

For your web container - you are missing ports - this is causing your SSL Problem - you published 443 to the wrong container.

 web:
    image: nginx:alpine
    environment:
        - PUID=1000
        - PGID=100
        - TZ=America/Los_Angeles
   ports:
      - "80:80"
      - "443:443"
    volumes:
        - /home/.config/OrcPub/nginx.conf:/etc/nginx/conf.d/default.conf
        - /home/.config/OrcPub/snakeoil.crt:/etc/nginx/snakeoil.crt
        - /home/.config/OrcPub/snakeoil.key:/etc/nginx/snakeoil.key
        - /sharedfolders/Veritas/Programs/OrcPub/homebrew/:/usr/share/nginx/html/homebrew/
    restart:  unless-stopped
    networks:
      - orcpub-network

For the generator container - doesn't need volumes.

 dndgenerator:
    image: orcpub/dndgenerator:latest
    environment:
        - PUID=1000
        - PGID=100
        - TZ=America/Los_Angeles
    restart:  unless-stopped
    networks:
      - orcpub-network

and add to your nginx.conf

    location /generator/ {
        client_max_body_size 10m;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://dndgenerator:80;
    }

Biggest thing is you are missing the docker networks to connect them all

docker network create -d overlay --attachable orcpub-network
hakarune commented 3 years ago

location /generator/ { client_max_body_size 10m; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://dndgenerator:80; }

Cloning the repo doesn't work for Portainer and how I have my server setup. I am not running a swarm either, so network overlay is not the correct setting. Your settings and the creating a new network and removing all ports except the 80,443 & 8890 failed to work (Orcpub couldn't find datomic and would load). Just gave a long log about unable to connect to datomic.

My config works 99% of the way, generator, web, & datomic are up 100% and working; Orcpub (8890) is 50% working. Your "snakeoil" cert & key with forced SSL on 8890; that is what is causing my issue. I can open http for 8890, but then it immediately redirects to https and says SSL error. I even manually installed the cert on my machine and still couldn't open the page. 2021-04-08 this is the only issue I am now having.

NGINX Errors:

2021/04/12 01:42:17 [emerg] 1#1: host not found in upstream "orcpub" in /etc/nginx/conf.d/default.conf:20
nginx: [emerg] host not found in upstream "orcpub" in /etc/nginx/conf.d/default.conf:20
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf differs from the packaged version
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
hakarune commented 3 years ago

config works 99% of the way, generator, web, & datomic are up 100% and working; Orcpub (8890) is 50% working. Your "snakeoil" cert & key with forced SSL on 8890; that is what is causing my issue. I can open http for 8890, but then it immediately redirects to https and says SSL error. I even manually installed the

I have found the issue. The DMV setup with docker does not allow port masking. I cannot mask as 89:80 & 447:443. When I stop the docker which already has port 80 used, and use if for DMV; everything works as intended. This is a pretty big issue IMO. Many people already run their ngnix or reverse proxy on port 80 with Docker. Not being able to mask or change the ports is a problem.

datdamnzotz commented 3 years ago

The certificates are bound to Nginx, not the orcpub container at all. You can't bind 80/443 to the same IP address twice which sounds like what you are trying to do. Either add another IP address to the host and change all your docker-compose files that use 80/443 networking to:

container1:
   ports:
      - "newhostIP:80:80"
      - "newhostIP:443:443"
container2:
   ports:
      - "oldhostIP:80:80"
      - "oldhostIP:443:443"

Or drop our Nginx container and use the existing reverse proxy you have bound to 80/443. Add the equivalent rules to that reverse proxy and just use one reverse proxy for all your containers. Then add that reverse proxy container to the orcpub_network

    location / {
        client_max_body_size 10m;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://orcpub:8890;
    }

8890 is the internal webservice for Orcpub, it's not meant to be published or bound to your bridge in docker. It will try to redirect to https://ip:8890 which breaks unless it is published through the reverse proxy.

Nginx is used for publishing orcpub. 80/443 to -> 8890

So your client requests to ltd.com-> hostIP nginx:80/443->orcpub:8890 via:

    location / {
        client_max_body_size 10m;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://orcpub:8890;
    }

The error below is nginx can't resolve the orcpub container name. Which implies that nginx and orcpub are not on the same network - check your networks: on datomic, orcpub and nginx containers. They need to be all attached to the same network so they can talk to each other.

2021/04/12 01:42:17 [emerg] 1#1: host not found in upstream "orcpub" in /etc/nginx/conf.d/default.conf:20
nginx: [emerg] host not found in upstream "orcpub" in /etc/nginx/conf.d/default.conf:20

When properly configured in portainer under networking you should see all three orcpub containers attached to the same network including nginx (this screen shot doesn't show it but orcpub_nginx should be in there) orcpub_datomic, orcpub_orcpub, and orcpub_nginx image

datdamnzotz commented 3 years ago

Worked fine copy pasting our default config into portainer (update paths, running snakeoil.sh) and deploying the stack

docker: Docker version 20.10.6, build 370c289 docker-compose: docker-compose version 1.29.0, build 07737305 portainer 2.1.1

image

Compose used:

version: '3.8'
services:
  orcpub:
    image: orcpub/orcpub:latest
    environment:
      PORT: 8890
      EMAIL_SERVER_URL: ''
      EMAIL_ACCESS_KEY: ''
      EMAIL_SECRET_KEY: ''
      EMAIL_SERVER_PORT: 587
      # Email address to send from, will default to 'no-reply@orcpub.com'
      EMAIL_FROM_ADDRESS: ''
      # Email address to send errors to
      EMAIL_ERRORS_TO: ''
      EMAIL_SSL: 'FALSE'
      EMAIL_TLS: 'FALSE'
      # Datomic connection string - Make sure the <change this> matches the DATOMIC_PASSWORD below
      DATOMIC_URL: datomic:free://datomic:4334/orcpub?password=pass
      # The secret used to hash your password in the browser, 20+ characters recommended
      SIGNATURE: '<change me to something unique>'
    depends_on:
      - datomic
    restart: always
  datomic:
    image: orcpub/datomic:latest
    environment:
      ADMIN_PASSWORD: pass1
      # Must match the <change this> in the DATOMIC_URL above.
      DATOMIC_PASSWORD: pass
    volumes:
      - /home/user/orcpub/data:/data
      - /home/user/orcpub/logs:/logs
    restart: always
  web:
    image: nginx:alpine
    ports:
      - "87:80"
      - "447:443"
    volumes:
      - /home/user/orcpub/deploy/nginx.conf:/etc/nginx/conf.d/default.conf
      - /home/user/orcpub/deploy/snakeoil.crt:/etc/nginx/snakeoil.crt
      - /home/user/orcpub/deploy/snakeoil.key:/etc/nginx/snakeoil.key
      - /home/user/orcpub/deploy/homebrew/:/usr/share/nginx/html/homebrew/
    depends_on:
      - orcpub
    restart: always

The default http redirects will fail using the default nginx.conf Work around for that is update your nginx.conf file and add a redirect on 80:

server {
    listen 80 default_server;
    return 301 https://192.168.1.118:447;  # Your IP address or FQDN in here
}
server {
    listen 443 ssl;
    server_name  localhost;

    ssl_certificate      /etc/nginx/snakeoil.crt;
    ssl_certificate_key  /etc/nginx/snakeoil.key;
    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://orcpub:8890;  #<-- Might have to change this to orcpub_orcpub_1 depending on name resolution issues.
    }

image

One thing to note - check your cert's are actual files and not directories - if you ran the stack before running snakeoil.sh the container will link them as directories and not files.

hakarune commented 3 years ago

Worked fine copy pasting our default config into portainer (update paths, running snakeoil.sh) and deploying the stack

docker: Docker version 20.10.6, build 370c289 docker-compose: docker-compose version 1.29.0, build 07737305 portainer 2.1.1

image

Compose used:

version: '3.8'
services:
  orcpub:
    image: orcpub/orcpub:latest
    environment:
      PORT: 8890
      EMAIL_SERVER_URL: ''
      EMAIL_ACCESS_KEY: ''
      EMAIL_SECRET_KEY: ''
      EMAIL_SERVER_PORT: 587
      # Email address to send from, will default to 'no-reply@orcpub.com'
      EMAIL_FROM_ADDRESS: ''
      # Email address to send errors to
      EMAIL_ERRORS_TO: ''
      EMAIL_SSL: 'FALSE'
      EMAIL_TLS: 'FALSE'
      # Datomic connection string - Make sure the <change this> matches the DATOMIC_PASSWORD below
      DATOMIC_URL: datomic:free://datomic:4334/orcpub?password=pass
      # The secret used to hash your password in the browser, 20+ characters recommended
      SIGNATURE: '<change me to something unique>'
    depends_on:
      - datomic
    restart: always
  datomic:
    image: orcpub/datomic:latest
    environment:
      ADMIN_PASSWORD: pass1
      # Must match the <change this> in the DATOMIC_URL above.
      DATOMIC_PASSWORD: pass
    volumes:
      - /home/user/orcpub/data:/data
      - /home/user/orcpub/logs:/logs
    restart: always
  web:
    image: nginx:alpine
    ports:
      - "87:80"
      - "447:443"
    volumes:
      - /home/user/orcpub/deploy/nginx.conf:/etc/nginx/conf.d/default.conf
      - /home/user/orcpub/deploy/snakeoil.crt:/etc/nginx/snakeoil.crt
      - /home/user/orcpub/deploy/snakeoil.key:/etc/nginx/snakeoil.key
      - /home/user/orcpub/deploy/homebrew/:/usr/share/nginx/html/homebrew/
    depends_on:
      - orcpub
    restart: always

The default http redirects will fail using the default nginx.conf Work around for that is update your nginx.conf file and add a redirect on 80:

server {
    listen 80 default_server;
    return 301 https://192.168.1.118:447;  # Your IP address or FQDN in here
}
server {
    listen 443 ssl;
    server_name  localhost;

    ssl_certificate      /etc/nginx/snakeoil.crt;
    ssl_certificate_key  /etc/nginx/snakeoil.key;
    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://orcpub:8890;  #<-- Might have to change this to orcpub_orcpub_1 depending on name resolution issues.
    }

image

One thing to note - check your cert's are actual files and not directories - if you ran the stack before running snakeoil.sh the container will link them as directories and not files.

This fixed it. Changing the conf to the proper port finally made it work. Thank you. Sorry my setup has been a pain in the butt.

Now it's loading everything except the "homebrew" file I have and I can't get gmail or hotmail to work with the email stuff.

EMAIL ERRORS:

[clojure.core$with_bindings_STAR_ doInvoke "core.clj" 1973],
  [clojure.lang.RestFn invoke "RestFn.java" 425],
  [io.pedestal.interceptor.chain$leave_all invokeStatic "chain.clj" 243],
  [io.pedestal.interceptor.chain$leave_all invoke "chain.clj" 237],
  [io.pedestal.interceptor.chain$execute invokeStatic "chain.clj" 356],
  [io.pedestal.interceptor.chain$execute invoke "chain.clj" 329],
  [io.pedestal.interceptor.chain$execute invokeStatic "chain.clj" 366],
  [io.pedestal.interceptor.chain$execute invoke "chain.clj" 329],
  [io.pedestal.http.impl.servlet_interceptor$interceptor_service_fn$fn__24518 invoke "servlet_interceptor.clj" 350],
  [io.pedestal.http.servlet.FnServlet service "servlet.clj" 28],
  [org.eclipse.jetty.servlet.ServletHolder handle "ServletHolder.java" 845],
  [org.eclipse.jetty.servlet.ServletHandler doHandle "ServletHandler.java" 583],
  [org.eclipse.jetty.server.handler.ScopedHandler handle "ScopedHandler.java" 143],
  [org.eclipse.jetty.server.handler.gzip.GzipHandler handle "GzipHandler.java" 462],
  [org.eclipse.jetty.server.handler.ContextHandler doHandle "ContextHandler.java" 1162],
  [org.eclipse.jetty.servlet.ServletHandler doScope "ServletHandler.java" 511],
  [org.eclipse.jetty.server.handler.ContextHandler doScope "ContextHandler.java" 1092],
  [org.eclipse.jetty.server.handler.ScopedHandler handle "ScopedHandler.java" 141],
  [org.eclipse.jetty.server.handler.HandlerWrapper handle "HandlerWrapper.java" 134],
  [org.eclipse.jetty.server.Server handle "Server.java" 518],
  [org.eclipse.jetty.server.HttpChannel handle "HttpChannel.java" 308],
  [org.eclipse.jetty.server.HttpConnection onFillable "HttpConnection.java" 244],
  [org.eclipse.jetty.io.AbstractConnection$ReadCallback succeeded "AbstractConnection.java" 273],
  [org.eclipse.jetty.io.FillInterest fillable "FillInterest.java" 95],
  [org.eclipse.jetty.io.SelectChannelEndPoint$2 run "SelectChannelEndPoint.java" 93],
  [org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume produceAndRun "ExecuteProduceConsume.java" 246],
  [org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume run "ExecuteProduceConsume.java" 156],
  [org.eclipse.jetty.util.thread.QueuedThreadPool runJob "QueuedThreadPool.java" 654],
  [org.eclipse.jetty.util.thread.QueuedThreadPool$3 run "QueuedThreadPool.java" 572],
  [java.lang.Thread run "Thread.java" 748]]}},
    at io.pedestal.interceptor.chain$throwable__GT_ex_info.invokeStatic(chain.clj:33),
    at io.pedestal.interceptor.chain$throwable__GT_ex_info.invoke(chain.clj:32),
    at io.pedestal.interceptor.chain$try_error.invokeStatic(chain.clj:80),
    at io.pedestal.interceptor.chain$try_error.invoke(chain.clj:62),
    at io.pedestal.interceptor.chain$leave_all_with_binding.invokeStatic(chain.clj:230),
    at io.pedestal.interceptor.chain$leave_all_with_binding.invoke(chain.clj:214),
    at io.pedestal.interceptor.chain$leave_all$fn__21220.invoke(chain.clj:245),
    at clojure.lang.AFn.applyToHelper(AFn.java:152),
    at clojure.lang.AFn.applyTo(AFn.java:144),
    at clojure.core$apply.invokeStatic(core.clj:665),
    at clojure.core$with_bindings_STAR_.invokeStatic(core.clj:1973),
    at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1973),
    at clojure.lang.RestFn.invoke(RestFn.java:425),
    at io.pedestal.interceptor.chain$leave_all.invokeStatic(chain.clj:243),
    at io.pedestal.interceptor.chain$leave_all.invoke(chain.clj:237),
    at io.pedestal.interceptor.chain$execute.invokeStatic(chain.clj:356),
    at io.pedestal.interceptor.chain$execute.invoke(chain.clj:329),
    at io.pedestal.interceptor.chain$execute.invokeStatic(chain.clj:366),
    at io.pedestal.interceptor.chain$execute.invoke(chain.clj:329),
    at io.pedestal.http.impl.servlet_interceptor$interceptor_service_fn$fn__24518.invoke(servlet_interceptor.clj:350),
    at io.pedestal.http.servlet.FnServlet.service(servlet.clj:28),
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:845),
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:583),
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143),
    at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:462),
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1162),
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511),
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1092),
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141),
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134),
    at org.eclipse.jetty.server.Server.handle(Server.java:518),
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308),
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:244),
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273),
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95),
    at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93),
    at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:246),
    at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:156),
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654),
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572),
    at java.lang.Thread.run(Thread.java:748),
Caused by: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: 'smtp-mail.outlook.com', 587; timeout -1;,
  nested exception is:,
    java.net.UnknownHostException: 'smtp-mail.outlook.com',
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2100),
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:699),
    at javax.mail.Service.connect(Service.java:366),
    at postal.smtp$smtp_send_STAR_.invokeStatic(smtp.clj:33),
    at postal.smtp$smtp_send_STAR_.invoke(smtp.clj:29),
    at postal.smtp$smtp_send.invokeStatic(smtp.clj:58),
    at postal.smtp$smtp_send.doInvoke(smtp.clj:39),
    at clojure.lang.RestFn.invoke(RestFn.java:423),
    at postal.core$send_message.invokeStatic(core.clj:35),
    at postal.core$send_message.invoke(core.clj:29),
    at orcpub.email$send_error_email.invokeStatic(email.clj:86),
    at orcpub.email$send_error_email.invoke(email.clj:84),
    at orcpub.routes$fn__29588.invokeStatic(routes.clj:973),
    at orcpub.routes$fn__29588.invoke(routes.clj:971),
    at io.pedestal.interceptor.chain$try_error.invokeStatic(chain.clj:73),
    ... 38 more,
Caused by: java.net.UnknownHostException: 'smtp-mail.outlook.com',
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184),
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392),
    at java.net.Socket.connect(Socket.java:589),
    at java.net.Socket.connect(Socket.java:538),
    at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:331),
    at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238),
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2066),
    ... 52 more,
[qtp1027017168-36] INFO io.pedestal.http.impl.servlet-interceptor - {:msg "sending error", :message "Internal server error: exception", :line 214},
datdamnzotz commented 3 years ago

Resolved?

hakarune commented 2 years ago

Resolved?

No. Nothing ever fixed it. Even with the chatting in Discord. I was never able to get this to work at all.