Meiga - Light and easy content server for your desktop

Description

The current trend in the Internet is to publish contents in centralized servers to be shared to other people. Nevertheless, sometimes it's handy for users to be able to serve their own contents directly from their desktops in a convenient way (instead of using a pendrive, for instance). Why bothering about publishing your contents if you can share them directly from your desktop to the LAN or even to the whole Internet?

To satisfy this need we've created Meiga, a tool that makes possible to share selected local directories via web. But that's only the beginning. In fact, the ultimate goal of the project is to serve as a common publishing point for other desktop applications, such as the file manager, picture viewers or music players.

Meiga is lightweight, easy to use, network friendly and also application friendly. It's written in a mix of Vala and pure C code, using existing Gnome technologies to perform its tasks: libsoup is used as a simpler alternative to fat web servers, libgupnp is in charge of doing port redirections if the network router supports UPnP, and DBUS exposes a public API to allow the GUI and third party applications to control what is served. Some advanced publishing features are already implemented, like the feed server that can render an RSS view of a given directory.

From the educational point of view, the source code of this project is a live example of Vala technology usage: pure Vala programming, different alternatives to interface Vala with pure C code (using Vapi files or running a child executable program) or the usage of a "programmable context" to handle sequentiation of asynchronous operations. An autotools based build system completes the set of interesting features. This system uses a Vapi file to pass configuration parameters from the config.h to the Vala program. Finally, some additional rule files allow the building of a Debian package, the last step to make the program available to final users in a convenient way.

News

For latest news, have a look at the Meiga blog.

License

Meiga is free software (C) 2009 Igalia, S.L.. It's released under GPL 2.0.

Download

WARNING: Hardy and Intrepid versions are unsupported. Please visit the packages from previous versions section to find versions suitable for those distributions.

Have you compiled Meiga for other distributions? Let me know and I'll add a link to your package here. I'm also open to include upstream support for other distributions.

Change log

The new features in the latest version () are:

Screenshots

Meiga screenshot (shares)   Meiga screenshot (log)
Meiga screenshot (options)

Documentation

Some information about the project goals, history and code structure can be found in the slides prepared for the Gran Canaria Desktop Summit 2009 (Thu Jul 9 2009).

Frequently Asked Questions

Q: I'm having connection problems. People can't access my shared content from the Internet

A: There is a set of connection tests that you can perform if you're a power user in order to diagnose the connection problems


Q: Why don't simply use Samba or NFS for file sharing?

A: Of course, Meiga goal is not to replace Samba. Samba is a mature file sharing technology for Local Area Networks, but it’s a little bit unconvenient for sharing files to the internet.

You've probably experienced problems with Samba more than one time, specially that time when you want to share some pictures to a friend with a laptop in the same room as you. Wouldn’t be convenient just to have a small web server and tell him/her “hey, just go to http://192.168.1.1:8001/pictures“? That’s what Meiga does (by the moment).

In addition, you can do the same but sharing to the Internet if you have an UPnP capable router. You don’t need to bother about port redirections, configurations or computer not finding themselves in the network. Just share, copy the address (with the copy icon) and paste it on a chat or IM.


Q: Why create Meiga if gnome-user-share already exists?

A: Because it depends on Apache and I've thought that a lighter approach, such as libsoup, would be better for an occasional sharing need.


Q: Why create Meiga if KDE Personal File share (KPF) already exists?

A: Because it's a Kicker applet, not a standalone program, so it depends on Kicker. I tought that having an equivalent using Gnome technologies and able to be used on any desktop environment would be handy for Gnome users


Q: Are there other alternatives to serve web contents from Gnome?

A: Yes. For more powerful and server-centric content serving, maybe you would like to know about Midgard, and Open Source Content Management Framework that has integration with GObject, DBUS and other languages such as PHP or Objective C.


Q: How can I access to the RSS view of a directory?

A: Just prepend "/rss" to the share URL created for that directory. For example, the RSS view for "http://192.168.1.1:8001/pictures" would be "http://192.168.1.1:8001/rss/pictures".


Q: There are many things in the code that could be enhanced

A: Meiga is work in progress. There are a lot of enhancements to do, from the autotools scripts to the Debian package, I agree. I prefered to apply a "release early, release often" approach for this project, so I did the autotools and packaging stuff in a rush because I think it's better for final users to have Meiga packaged than having it only as a .tar.gz, though.

About

The main author of the program is Enrique Ocaña González (eocanha at igalia dot com). You can get in touch with him by email.




Valid HTML 4.01 Transitional