wireapp / wire-server Goto Github PK
View Code? Open in Web Editor NEW🇪🇺 Wire back-end services
Home Page: https://wire.com
License: GNU Affero General Public License v3.0
🇪🇺 Wire back-end services
Home Page: https://wire.com
License: GNU Affero General Public License v3.0
Followed documentation and did cd build/alpine && make
But when the procedure is done it returns me this error:
make[1]: *** [compiler/ghc.mk:587: compiler/stage1/build/DynFlags.o] Killed
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [libraries/Cabal/Cabal/ghc.mk:3: libraries/Cabal/Cabal/dist-boot/build/Distribution/Simple/Setup.o] Segmentation fault (core dumped)
make: *** [Makefile:125: all] Error 2
The command '/bin/sh -c cd /tmp/ghc && ./boot && SPHINXBUILD=/usr/bin/sphinx-build-3 ./configure --prefix=/root/.stack/programs/x86_64-linux/$GHC_VER --disable-ld-override && make -j4 && make install && mv /tmp/config.yaml /root/.stack/' returned a non-zero code: 2
Makefile:10: recipe for target 'builder' failed
make: *** [builder] Error 2
What containers are needed to run
I launch according to the instructions in README.md
Displays in the console
root@ubuntu:~/wire-server/deploy/services-demo# ./demo.sh
Generate a secret for the TURN servers (must match the turn.secret key in brig's config)...
Generate private and public keys (used both by brig and nginz)...
[cannon] I, Listening on 127.0.0.1:8083
[brig] D, logger=cassandra.brig, connecting to 127.0.0.1:9042
[cargohold] I, Listening on 0.0.0.0:8084
[galley] I, logger=cassandra.galley, control connection: 127.0.0.1:9042#11
nginx: [alert] could not open error log file: open() "/var/log/nginz/error.log" failed (2: No such file or directory)
[gundeck] I, logger=cassandra.gundeck, control connection: 127.0.0.1:9042#11
[proxy] I, Listening on 0.0.0.0:8087
[brig] I, logger=cassandra.brig, control connection: 127.0.0.1:9042#11
[brig] I, logger=cassandra.brig, known hosts: [datacenter1:rack1:127.0.0.1:9042]
[brig] D, logger=cassandra.brig, client.connect=127.0.0.1:9042#12
[brig] I, Listening on 0.0.0.0:8082
[galley] I, logger=cassandra.galley, known hosts: [datacenter1:rack1:127.0.0.1:9042]
[galley] I, Listening on 127.0.0.1:8085
[gundeck] I, logger=cassandra.gundeck, known hosts: [datacenter1:rack1:127.0.0.1:9042]
[gundeck] I, Listening on 0.0.0.0:8086
All services up & running, Wire away!
I go to http://127.0.0.1:8080/swagger-ui, it gives an error "403 Forbidden
nginx" in console "2018/05/11 06:14:22 [error] 116544#0: *9 open() "/root/wire-server/deploy/services-demo/conf/nginz/zwagger-ui" failed (13: Permission denied), client: 192.168.186.1, server: , request: "GET /swagger-ui HTTP/1.1", host: "192.168.186.140:8080""
I‘m using Wire for a while now for my private communication whenever possible and I really like it. Great work guys!
I‘m currently looking for a self hosted chat server for my company. From what I understand it will be possible to run your own Wire server soon (dependencies on AWS are fine for us)
We need one (somewhat exotic) feature:
We need to be able to set the presence status of a user on the server from another application to busy and back to what it was before we set it to busy.
I read that user presence is end to end encrypted. While e2e encryption is one of the things that make Wire great I‘m worried that it is not possible to control presence of user from a 3rd party app.
My question in one sentence:
Will it be possible to set user presence via API or by editing the database to busy and back to what it was?
Hi,
Is it a good idea to use api-client library for building a real Wire client? AFAICS it is a more or less complete HTTP API so it would save me some typing if I use wire-server as a git submodule. However, it's obviously an internal part of the project so it can be rewritten/eliminated/etc.
Why not swagger-ui
Howdy Wire.
This repository does not have a PULL_REQUEST_TEMPLATE.md
and ISSUE_TEMPLATE.md
See below for examples:
Refer to https://github.com/flexyford/pull-request-template for more insights as to why these are needed.
My AWS Service Region:
SQS service is in us-east-2
SES service is in us-east-1
dynamoDB is in us-east-2
When I starting the brig/galley service, I got this error message:
service: GeneralError (ServiceError (ServiceError' {_serviceAbbrev = Abbrev "SQS", _serviceStatus = Status {statusCode = 403, statusMessage = "Forbidden"}, _serviceHeaders = [("Server","Server"),("Date","Sun, 25 Mar 2018 03:35:42 GMT"),("Content-Type","text/xml"),("Content-Length","322"),("Connection","close"),("x-amzn-RequestId","21de53ba-6909-52ba-b731-008b7247b060")], _serviceCode = ErrorCode "SignatureDoesNotMatch", _serviceMessage = Just (ErrorMessage "Credential should be scoped to a valid region, not 'us-east-1'. "), _serviceRequestId = Just (RequestId "21de53ba-6909-52ba-b731-008b7247b060")}))
con$ cd build/alpine && make
docker build -t wireserver/alpine-deps:local -f Dockerfile.deps .
Sending build context to Docker daemon 20.99kB
Step 1/5 : FROM alpine:3.7 as cryptobox-builder
---> 3fd9065eaf02
Step 2/5 : RUN apk add --no-cache cargo libsodium-dev git && cd /tmp && git clone https://github.com/wireapp/cryptobox-c.git && cd cryptobox-c && cargo build --release
---> Running in 8116d19f8ab3
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz: BAD signature
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz: BAD signature
ERROR: unsatisfiable constraints:
cargo (missing):
required by: world[cargo]
git (missing):
required by: world[git]
libsodium-dev (missing):
required by: world[libsodium-dev]
The command '/bin/sh -c apk add --no-cache cargo libsodium-dev git && cd /tmp && git clone https://github.com/wireapp/cryptobox-c.git && cd cryptobox-c && cargo build --release' returned a non-zero code: 3
make: *** [deps] Error 3
Hi All.
Looking at the content of the repository (README.md) i can't find any service related to voice and video calls.
Is this feature available in the current wire-server source code ?
Best regards,
Sasà.
How do you deploy it?
I See the Wire-server is built using AWS configuration., Can it be ported to other cloud servers such as Google Cloud or any VPS
before build ,i hava install the cryptobox-c .
https://github.com/wireapp/wire-server/blob/docs/doc/Dependencies.md#cryptobox-c
but i got the following message. how can i fix it.
-- While building custom Setup.hs for package cryptobox-haskell-0.1.1 using:
/root/.stack/setup-exe-cache/x86_64-linux-gmp4/Cabal-simple_mPHDZzAJ_2.0.1.0_ghc-8.2.2 --builddir=.stack-work/dist/x86_64-linux-gmp4/Cabal-2.0.1.0 configure --with-ghc=/root/.stack/programs/x86_64-linux/ghc-gmp4-8.2.2/bin/ghc --with-ghc-pkg=/root/.stack/programs/x86_64-linux/ghc-gmp4-8.2.2/bin/ghc-pkg --user --package-db=clear --package-db=global --package-db=/root/.stack/snapshots/x86_64-linux-gmp4/lts-10.3/8.2.2/pkgdb --package-db=/root/wire-server/.stack-work/install/x86_64-linux-gmp4/lts-10.3/8.2.2/pkgdb --libdir=/root/wire-server/.stack-work/install/x86_64-linux-gmp4/lts-10.3/8.2.2/lib --bindir=/root/wire-server/.stack-work/install/x86_64-linux-gmp4/lts-10.3/8.2.2/bin --datadir=/root/wire-server/.stack-work/install/x86_64-linux-gmp4/lts-10.3/8.2.2/share --libexecdir=/root/wire-server/.stack-work/install/x86_64-linux-gmp4/lts-10.3/8.2.2/libexec --sysconfdir=/root/wire-server/.stack-work/install/x86_64-linux-gmp4/lts-10.3/8.2.2/etc --docdir=/root/wire-server/.stack-work/install/x86_64-linux-gmp4/lts-10.3/8.2.2/doc/cryptobox-haskell-0.1.1 --htmldir=/root/wire-server/.stack-work/install/x86_64-linux-gmp4/lts-10.3/8.2.2/doc/cryptobox-haskell-0.1.1 --haddockdir=/root/wire-server/.stack-work/install/x86_64-linux-gmp4/lts-10.3/8.2.2/doc/cryptobox-haskell-0.1.1 --dependency=base=base-4.10.1.0 --dependency=bytestring=bytestring-0.10.8.2 --dependency=hashable=hashable-1.2.6.1-2mYqdjpViBjIDGbaewMsOr --dependency=unordered-containers=unordered-containers-0.2.8.0-6Q8cKU0tfULGVDjEZYkMDG --enable-tests --enable-benchmarks
Process exited with code: ExitFailure 1
Logs have been written to: /root/wire-server/.stack-work/logs/cryptobox-haskell-0.1.1.log
Configuring cryptobox-haskell-0.1.1...
Cabal-simple_mPHDZzAJ_2.0.1.0_ghc-8.2.2: Missing dependency on a foreign
library:
* Missing C library: cryptobox
This problem can usually be solved by installing the system package that
provides this library (you may need the "-dev" version). If the library is
already installed but in a non-standard location then you can use the flags
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.
i am in China,because of the GFW, the speed is very slow, i want change the server to local. how can i do this thanks.
Hi
I have followed the build instructions and docker instructions. However I cannot see any binaries or any way on how to run wire server or it's services. I see in make process wire server makes some diretories , but I cannot find them in wire source directory or /usr/bin either. Do we manually find a way top build binaries?
thanks
When you try to start the docker container, it gives an error.
~/wire-server# docker run --name nginz nginz
Setting up watches for /etc/wire/nginz/upstreams
Starting nginx
nginx PID: 8
Setting up watches.
Couldn't watch /etc/wire/nginz/upstreams: No such file or directory
inotifywait failed, killing nginx
/usr/bin/nginz_reload.sh: line 38: 8 Terminated { echo "Starting nginx"; nginx "$@" && exit 1; }
~/wire-server# docker run --name brig brig
Config file at /etc/wire/brig/conf/brig.yaml does not exist, falling back to command-line arguments.
Help please run.
make services
will make nginz
while in mac os x
../third_party/nginx-zauth-module/zauth_module.c:6:10: fatal error: 'zauth.h' file not found
#include <zauth.h>
^~~~~~~~~
1 error generated.
So I will need install libzauth
➜ wire-server git:(develop) ✗ cd libs/libzauth
➜ libzauth git:(develop) ✗ make
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C libzauth-c dist
cargo build --release
Finished release [optimized] target(s) in 0.0 secs
mkdir -p deb/usr/local/include
mkdir -p deb/usr/local/lib/pkgconfig
cp src/zauth.h deb/usr/local/include/
sed -e "s~<<VERSION>>~"3.0.0"~" \
-e "s~<<PREFIX>>~/usr/local~" \
src/libzauth.pc > deb/usr/local/lib/pkgconfig/libzauth.pc
cp target/release/libzauth.dylib deb/usr/local/lib/
cp libzauth-c/target/release/*.deb .
cp: libzauth-c/target/release/*.deb: No such file or directory
make: *** [dist] Error 1
while I think in mac os x we don't need deb
thing any more.
In OSX, I need to specify extra flags to build HSOpenSSL
:
$ stack install HsOpenSSL-0.11.4.12 \
--extra-lib-dirs=/usr/local/opt/openssl/lib \
--extra-include-dirs=/usr/local/opt/openssl/include
Then when I run stack build
:
HsOpenSSL-0.11.4.12: unregistering (flags changed from ["--extra-include-dirs=/usr/local/opt/openssl/include","--extra-lib-dirs=/usr/local/opt/openssl/lib"] to [])
Is there a way to specify extra flags for extra-deps
packages in stack.yaml
?
Hello! Will there be installation instructions for the wire server on ubuntu?
Do you believe it is a good idea to download nginx over an (insecure) HTTP connection and compile it without any verification?
At least this is what I see there. No gpg verification…
At least switching to HTTPS is easy as the nginx site nowadays uses HTTPS. However, I'd better recommend you to use gpg.
make -C build/alpine
make[1]: Entering directory '/home/guest/Gits/wire-server-develop/build/alpine'
docker build -t wire-server-deps:alpine -f Dockerfile.deps .
Sending build context to Docker daemon 10.75 kB
Step 1/5 : FROM alpine:3.6 as cryptobox-builder
Error parsing reference: "alpine:3.6 as cryptobox-builder" is not a valid repository/tag: invalid reference format
Makefile:6: recipe for target 'deps' failed
make[1]: *** [deps] Error 1
make[1]: Leaving directory '/home/guest/Gits/wire-server-develop/build/alpine'
Makefile:6: recipe for target 'docker-services' failed
make: *** [docker-services] Error 2
how fix?
It's a bit hard to ascertain the intent for release from the existing code-base, but I wanted to make the inquiry about it:
Is Docker going to be intended to be the primary distribution mechanism?
This is highly preferential, but it would be really great to be able to consume the services as a bundle or as separately built components in their built form as just an archive (e.g. tar.gz, xz), so that downstream distributions can work on packaging it appropriately.
Docker necessitates a pretty heavy dependency on potential wire-server operators. It makes life easier for those who are already using the docker ecosystem, but potentially much more convoluted for all other deployments. Secondarily it puts the packaging behind a layer of abstraction that makes for more difficulty when people want to package downstream.
I wonder if Wire server and client will be 100 % open source or if there will be some kind of dual license? I'm especially interested whether it will be possible to use team features, presence, conversation export etc. with the open source version.
Also is there any external software like admin tools for the Wire server that wouldn't be available as open source software?
Thanks!
Hi folk,
For a wire-server installation, is it necessary to configure all the external components (SNS,S3 …)?
Thanks
Hi,
I'm trying to install the latest version of wire server under debian 9 64 bit, lubuntu 16.04 LTS 64 bit, ubuntu 16.04 LTS and 18.04 LTS both 64 bit.
I can successfully install the dependencies only under ubuntu while under debian and lubuntu I get the following error for cryptobox-c:
cargo build
Compiling libsodium-sys v0.0.16
error: failed to run custom build command for `libsodium-sys v0.0.16`
process didn't exit successfully: `/home/clone/cryptobox-c/target/debug/build/libsodium-sys-33bf382dfdef1656/build-script-build` (exit code: 101)
--- stdout
cargo:rerun-if-env-changed=SODIUM_LIB_DIR
cargo:rerun-if-env-changed=SODIUM_STATIC
--- stderr
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: "Failed to run `\"pkg-config\" \"--libs\" \"--cflags\" \"libsodium\"`: No such file or directory (os error 2)"', libcore/result.rs:945:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.
Can you explain me why?
Moreover, the documentation is out of date since libssl-dev is required both under ubuntu family and debian.
Finally, the final command should be:
git clone https://github.com/wireapp/wire-server && cd wire-server/tools/makedeb
instead of git clone https://github.com/wire-server && cd wire-server/tools/makedeb
Thank you
service: Failed to read schema version from meta table. Error was: Invalid "unconfigured table meta"
CallStack (from HasCallStack):
error, called at src/Cassandra/Schema.hs:99:11 in cassandra-util-0.16.5-AkzXtK0RA1x9xLYL98aoZu:Cassandra.Schema
i need to start setup wire server but the website Documentation is down
https://medium.com/@wireapp/
I wrote this issue just for future. One day you will want to make federated version of Wire. That day will be added to history of the private communication.
But for now maybe you want to track your progress or to ask people about their vision on Wire's federated version.
I think you have good examples but not so private and anonymous as we want to have. So Wire will be first.
This is an awesome work for you team. I'm trying to get my foot wet and feel it. However, after I build the nginz docker, I tried to bring it up a container, it failed with
Starting nginx
2018/03/14 15:34:20 [emerg] 7#0: missing 'zauth_keystore' in /etc/nginx/nginx.conf:117
nginx: [emerg] missing 'zauth_keystore' in /etc/nginx/nginx.conf:117
I know it's related to the zauth config, but any reference or information I could get? Even no result with Google.
Please, we are looking forward setup the infrastructure very soon.
ARE MISSING
i want start to work with wire platform but i need to know whers wire admin panel after setup wire server?
If I register to wire, delete my account, and then register again, the activation code I receive via SMS is always the same. It is expected to be random for obvious security reasons.
When executing
# build nginz
cd services/nginz && make
the poppy produces an error
../third_party/nginx-zauth-module/zauth_module.c:6:19: fatal error: zauth.h: No such file or directory
compilation terminated.
objs/Makefile:1253: recipe for target 'objs/addon/nginx-zauth-module/zauth_module.o' failed
make[2]: *** [objs/addon/nginx-zauth-module/zauth_module.o] Error 1
make[2]: Leaving directory '/root/wire-server/services/nginz/src'
Makefile:8: recipe for target 'build' failed
make[1]: *** [build] Error 2
make[1]: Leaving directory '/root/wire-server/services/nginz/src'
Makefile:55: recipe for target 'src/objs/nginx' failed
make: *** [src/objs/nginx] Error 2
Hello,
Question : Why choose Haskell
for the server and API?
May you explain me with reasons?
Why not Nodejs+SocketIO/C/CPP/RUST?
I already compile the source successfully. And run the docker-compose up
.
While the demo.sh give the error
re-using existing TURN secret
re-using existing public/private keys
brig: user error (AesonException "Error in $: key \"cargohold\" not present")
[cargohold] I, Listening on 0.0.0.0:8084
I global search AesonException
and don't find anything.
OS version of Ubuntu 16.04
I'm trying to run the
cd build/alpine && make
The process hangs on
Step 18/18 : RUN apk add --no-cache git && mkdir -p /src && cd /src && g it clone https://github.com/wireapp/wire-server.git && cd wire-server && stack update && cd services/proxy && stack build --pedantic --test --depend encies-only && cd - && cd services/brig && stack build --pedantic --test --d ependencies-only && cd - && cd services/galley && stack build --pedantic --t est --dependencies-only && cd - && cd services/cannon && stack build --pedan tic --test --dependencies-only && cd - && cd services/cargohold && stack bui ld --pedantic --test --dependencies-only && cd - && cd services/gundeck && s tack build --pedantic --test --dependencies-only && cd -
---> Running in e717d19ac451
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
OK: 1269 MiB in 149 packages
Cloning into 'wire-server'...
Updating package index Hackage (mirrored at https://s3.amazonaws.com/hackage.fpcomplete.com/) ...
Selected mirror https://s3.amazonaws.com/hackage.fpcomplete.com/
Downloading timestamp
Downloading snapshot
Updating index
And so it can stand and day and two days
I want to install the wire server on my aws independently. Can anyone help me do that? Thanks!
First off GREAT work. Will there be an ETA on when we can expect the full instructions/documentation. Curious and excited to setup a standalone server and clients.
hello,
how will be account administrated?
if i register now account and then i would like to start own wire server, will there be a chance to migrate account to own server? or how will this be working?
how will be server2server working? i'm now running xmpp server and there are dns records to find correct server by domain.
maybe i'm missing something, but i'm looking forward to getting light into this :-)
Hi,
I am wondering is that possible to use localstack to replace the AWS dependency in standalone server setup. Has anyone done it? If no, I will be interesting to give it a try. I know there are other external dependencies so the effort may not create a standalone installation on a local server.
i used the restund server , but had a problem.
webrtc call is ok, but ios app call is fail.
i watch the console output same string is "auth: unknown user 'd=1522688417.v=1.k=0.t=s.r=yafkhmsgnluzrhbf'"
brig.yaml
turn:
servers: /etc/wire/turn/servers.txt
secret: /etc/wire/turn/secret.txt
i tried some config for this file /etc/wire/turn/secret.txt(eg, username:HA1) but it's incorrect.
thanks
i haven't find the apns-related config file through the project
thanks for your selfless sharing. I'm learning haskell and find this project. when i tried to install makedeb, i found the link https://github.com/twittner/makedeb is no longer exists, is there another place could get it?
Please tell me what to do next after doing the build?
Completed 13 action(s).
/src/wire-server
Removing intermediate container 758c28eef434
---> 2af52dba5ccf
Successfully built 2af52dba5ccf
Successfully tagged wireserver/alpine-builder:local
docker tag wireserver/alpine-builder:local wireserver/alpine-builder:latest
if test -n "$DOCKER_PUSH"; then docker push wireserver/alpine-builder:local; docker push wireserver/alpine-builder:latest; fi;
Can the Wire team please put together something like https://github.com/reactiveui/ReactiveUI/blob/develop/CONTRIBUTING.md for folks like myself that documents the basics such as:
If you place these files in ~/
of the git repository then GitHub will display them when people send in pull-requests.
Is there any documentation that explains how to install the wire application on my own server?
Hello world
Where i can find install instructions? All news about wire self hosted server but cant find instructions(
Scan message for @username
or @all
and notify users appropriately. This feature is very necessary for group conversations
Ideally, we could also notify a user if one of their messages is replied to by another user. But replying to or quoting messages might be an additional issue
i am interesting in wire developement.
i built all components in wire server.
But i dont know how to run server.
can anyone give me full guide.
now Readme is not enough
Hi
I followed your instruction in building server with docker, but I run into this error
error: Package sodiumoxide v0.0.14
does not have these features: std
Any help. Thanks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.